LeetCode 372 超级次方[快速幂 递归] HERODING的LeetCode之路
Posted HERODING23
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 372 超级次方[快速幂 递归] HERODING的LeetCode之路相关的知识,希望对你有一定的参考价值。
解题思路:
该题采用了快速幂的方法,通过不断调用快速幂,从数组的后面(个位)开始,不断对中间值相乘,每遍历过一个位数,就要让a翻上10倍,这样就避免修改快速幂函数的麻烦,代码如下:
class Solution
public:
const int MOD = 1337;
int quickPow(int a, int n)
if(n == 0)
return 1;
int b = quickPow(a, n / 2);
return n % 2 == 0 ? (long)b * b % MOD : (long)b * b * a % MOD;
int superPow(int a, vector<int>& b)
int ans = 1;
for(int i = b.size() - 1; i >= 0; i --)
ans = (long)ans * quickPow(a, b[i]) % MOD;
a = quickPow(a, 10);
return ans;
;
以上是关于LeetCode 372 超级次方[快速幂 递归] HERODING的LeetCode之路的主要内容,如果未能解决你的问题,请参考以下文章