使用快速幂的思想
/**
* 快速幂算法
* @param a 底数
* @param b 指数
* @param c 模
* @return
*/
public static int pow(int a, int b, int c) {
int ans = 1;
a %= c; // 降低了 a 的规模
while (b > 0) {
if ((b & 1) == 1) { // 奇数幂
ans = (ans * a) % c;
}
// 以下两步把, 8^8 化简为 (8*8)^4, 降低了底数和指数的规模
b >>= 1;
a = (a * a) % c;
}
return ans;
}