一般用于求解a^b%c时,可以大大降低时间复杂度
快速幂算法——可迅速求出a^b。其主要理论依据如下:
1,当b为偶数时,a^b可以转为a^2的b/2次方。
2,当b为奇数时,a^b可以转为a^2的b/2次方,再乘以a。
模板一:
int pow4(int a,int b)
{
int r=1,base=a;
while(b!=0)
{
if(b&1)
r*=base;
base*=base;
b>>=1; //二进制右移
}
return r;
}
模板二:
int cifang(int a, int b) {
int s = 1;
while (b > 0) {
if (b % 2 == 1) {//b=b>>1保证了在最后一步肯定会执行该if判断
s = s * a;
}
a=a*a;
b/=2;
}
return s;
}
模板一效率高啊!!!