作用:优化普通求幂算法的时间,空间复杂度,由一个O(n)优化到O(logn)。
算法:
1. (a*b)%c=(a%c)*(b%c)
2. 例如:1003的2进制是1111101011 ,

说明:此算法不可算负次方的情况,负数幂可用,记得边算边取模。
代码
int fpow(int a,int n,int mod) //输入参数
{
int Ans=1;
a=a%mod;
while(n!=0)
{
if(n&1) //判断最后一位是否为0
Ans=(Ans*a)%mod;
n>>=1; //位运算,删除二进制下的最后一位
a=a*a%mod; //每次平方倍后取模
}
return Ans; //返回结果
}