140. 快速幂
计算an % b,其中a,b和n都是32位的非负整数。
样例
例如 231 % 3 = 2
例如 1001000 % 1000 = 0
挑战
O(logn)
class Solution {
public:
/**
* @param a: A 32bit integer
* @param b: A 32bit integer
* @param n: A 32bit integer
* @return: An integer
*/
int fastPower(int a, int b, int n) {
// write your code here
if(n==0)
{
return 1%b;
}
if(n==1)
{
return a%b;
}
long long tmp=fastPower(a,b,n/2);
if(n%2==0)
{
return (tmp*tmp)%b;
}else
{
return ((tmp*tmp)%b*a)%b;
}
}
};