public class Solution {
public int superPow(int a, int[] b) {
int result = 1;
for (int i = 0; i < b.length; i++) {
result = fastPow(result, 10) * fastPow(a, b[i]) % 1337;
}
return result;
}
public int fastPow(int a, int n) {
if (n == 1) {
return a % 1337;
}
if (n == 0) {
return 1 % 1337;
}
long product = fastPow(a, n / 2);
product = (product * product) % 1337;
if (n % 2 == 1) {
product = (product * a) % 1337;
}
return (int) product;
}
}
思路
逐位取数
for (int i = 0; i < b.length; i++) {
result = fastPow(result, 10) * fastPow(a, b[i]) % 1337;
}