372. 超级次方
你的任务是计算 ab
对 1337
取模,a
是一个正整数,b
是一个非常大的正整数且会以数组形式给出。
示例 1:
输入:a = 2, b = [3] 输出:8
示例 2:
输入:a = 2, b = [1,0] 输出:1024
示例 3:
输入:a = 1, b = [4,3,3,8,5,2] 输出:1
示例 4:
输入:a = 2147483647, b = [2,0,0] 输出:1198
class Solution { public: long my_pow(int a, int b) { if (b==0) return 1; if (b==1) return a; long tt = my_pow(a,b/2); int res = (tt*tt)%1337; return b%2==1?res*(a%1337)%1337:res; } int superPow(int a, vector<int>& b) { int res = my_pow(a,b[0]); for(int i = 1; i < b.size();i++) { res = my_pow(res,10) * my_pow(a,b[i]) %1337; } return res; } };