题意
你的任务是计算
a
b
a^b
ab 对 1337
取模,a
是一个正整数,b
是一个非常大的正整数且会以数组形式给出。
题解
class Solution {
private:
int base = 1337;
public:
int superPow(int a, vector<int>& b) {
if(b.empty()) return 1;
int part1 = myPow(a, b.back());
b.pop_back();
int part2 = myPow(superPow(a, b), 10);
return part1 * part2 % base;
}
int myPow(int a, int k){
if(k == 0) return 1;
a %= base;
if(k % 2 != 0){
return a * myPow(a, k-1) % base;
}
else{
int sub = myPow(a, k/2);
return sub * sub % base;
}
}
};