372. Super Pow

class Solution { //数学模幂运算公式 a * b % k = (a % k) * (b % k) % k;
public:
int base = 1337;
int superPow(int a, vector<int>& b) {
if(b.empty()) return 1;
int back = b.back();
b.pop_back();
a = a % base;
return addPow(a, back) * addPow(superPow(a, b), 10) % base;
}
int addPow(int a, int b) {
int res = 1;
for(int i = 0; i < b; ++i) res = (res * a) % base;// 错误点 这里一定要加上对base求mod,这里没加而加在最后return res % base的话 这里可以越int最大值导致结果出错 
return res;
}
};

转载于:https://www.cnblogs.com/bloomingFlower/p/8325088.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值