描述:
计算an % b,其中a,b和n都是32位的整数。
样例:
例如 231 % 3 = 2
例如 1001000 % 1000 = 0
Java代码:
class Solution {
/*
* @param a, b, n: 32bit integers
* @return: An integer
*/
public long fastPower(int a, int b, int n) {
if (0 == n) {
return 1 % b;
}
if (1 == n) {
return a % b;
}
long power = fastPower(a, b, n / 2);
power = (power * power) % b;
if ((n & 1) != 0) {
return (power*a) % b;//n奇数
}
return power;//n偶数
}
};