快速幂
题目
样例
挑战
O(logn)
题解
根据分治法:a^n%b = (a^(n/2)%b * a^(n/2)%b)%b;
class Solution {
/*
* @param a, b, n: 32bit integers
* @return: An integer
*/
public int fastPower(int a, int b, int n) {
if (n == 1 || n == 0)
{
return (int)Math.pow(a,n) % b;
}
long result = fastPower(a, b, n / 2);
result = (result * result) % b;
if (n % 2 == 1)
{
result = (result * a) % b;
}
return (int) result;
}
};
Last Update 2016.10.17