LeetCode 372. Super Pow (快速幂取模)
2017-01-25 11:29
399 查看
Your task is to calculate ab mod 1337 where a is a positive integer and b is
an extremely large positive integer given in the form of an array.
Example1:
Example2:
题目链接:https://leetcode.com/problems/super-pow/
题目分析:ans = ans^10 + qpow(a, b[i])
public class Solution {
public static final int MOD = 1337;
public int qpow(int x, int n) {
int res = 1;
x %= MOD;
while (n > 0) {
if ((n & 1) == 1) {
res = (res * x) % MOD;
}
x = (x * x) % MOD;
n >>= 1;
}
return res;
}
public int superPow(int a, int[] b) {
int ans = 1, len = b.length;
for (int i = 0; i < len; i ++) {
ans = (qpow(ans, 10) * qpow(a, b[i])) % MOD;
}
return ans;
}
}
an extremely large positive integer given in the form of an array.
Example1:
a = 2 b = [3] Result: 8
Example2:
a = 2 b = [1,0] Result: 1024
题目链接:https://leetcode.com/problems/super-pow/
题目分析:ans = ans^10 + qpow(a, b[i])
public class Solution {
public static final int MOD = 1337;
public int qpow(int x, int n) {
int res = 1;
x %= MOD;
while (n > 0) {
if ((n & 1) == 1) {
res = (res * x) % MOD;
}
x = (x * x) % MOD;
n >>= 1;
}
return res;
}
public int superPow(int a, int[] b) {
int ans = 1, len = b.length;
for (int i = 0; i < len; i ++) {
ans = (qpow(ans, 10) * qpow(a, b[i])) % MOD;
}
return ans;
}
}
相关文章推荐
- LeetCode 372 Super Pow
- [leetcode-372]Super Pow(java)
- Leetcode (372) Super Pow
- LeetCode 第 372 题 (Super Pow)
- [java][leetcode 372]Super Pow
- LeetCode 372 Super Pow
- 372. Super Pow(LeetCode)
- Leetcode 372. Super Pow (Medium) (cpp)
- LeetCode Super Pow(快速求幂算法)
- LeetCode 第 372 题 (Super Pow)
- LeetCode Super Pow详解
- [Leetcode] 372. Super Pow 解题报告
- Math-372-Super Pow
- leetcode_372. Super Pow
- LeetCode - Pow(x, n) (快速幂)
- LeetCode 372. Super Pow解题思路(超详细)
- LeetCode-Super Pow
- leetcode Super Pow
- LeetCode "Super Pow"
- Leetcode: Super Pow