কম্পিউটার টিউটোরিয়াল

C++-এ সুপার পাওয়ার


a^b mod 1337 ক্যালকুলেট করতে হবে, যেখানে a একটি ধনাত্মক পূর্ণসংখ্যা আর b অত্যধিক বড় একটি ধনাত্মক পূর্ণসংখ্যা যা অ্যারে আকারে দেওয়া আছে। উদাহরণ: a = 2, b = [1,0] হলে আউটপুট ১০২৪।

সমাধানের ধাপগুলো:

  • powerMod() মেথড বানান যা base আর power নেবে:
    • m := 1337, ret := 1
    • power != 0 रहने পর্যন্ত:
      • যদি power বিজোড়, ret := (ret * base) % m
      • base := (base * base) % m
      • power := power / 2
    • ret ফেরত দিন।
  • superPower() মেথড বানান যা a আর b নেবে:
    • যদি b.size() == 0, ১ ফেরত দিন।
    • last := b-এর শেষ উপাদান।
    • b-এর শেষ উপাদান ডিলিট করুন।
    • (powerMod(superPower(a, b), 10) * powerMod(a, last)) % 1337 ফেরত দিন।

উদাহরণ (C++)

#include <bits/stdc++.h> using namespace std; typedef long long int lli; class Solution {    public:    int powerMod(lli base, lli power){       lli mod = 1337;       lli ret = 1;       while(power){          if(power & 1) ret = (ret * base) % mod;          base = (base * base) % mod;          power >>= 1;       }       return ret;    }    int superPow(int a, vector<int>& b) {       if(b.size() == 0) return 1;       int last = b.back();       b.pop_back();       return (powerMod(superPow(a, b), 10) * powerMod(a, last)) % 1337;    } }; main(){    Solution ob;    vector<int> v = {1,0};    cout << (ob.superPow(2, v)); }

ইনপুট

2 [1,0]

আউটপুট

1024

  1. C++-এ fdim() ফাংশন

  2. C++-এ reference_wrapper

  3. C++-এ পাওয়ার (pow) ফাংশন লিখুন

  4. C++-এ এনক্যাপসুলেশন