快速幂
顾名思义:快速幂就是快速算底数的n次幂。其时间复杂度为O(logN)
原理
求a的b次方,将b转换为二进制数,该二进制数第i位的权为2^i-1.
代码实现
long long Pow(long long a, long long b){
long long r = 1;
while(b){
if(b&1)
r*=a;
a *=a;
b>>=1;
}
return r;
}
顾名思义:快速幂就是快速算底数的n次幂。其时间复杂度为O(logN)
求a的b次方,将b转换为二进制数,该二进制数第i位的权为2^i-1.
long long Pow(long long a, long long b){
long long r = 1;
while(b){
if(b&1)
r*=a;
a *=a;
b>>=1;
}
return r;
}