快速幂
快速幂
作用:快速求幂,这个快体现在哪些方面呢?举个例子,2^5
朴素算法就是将2连乘5次,需要计算5次,而用快速幂的话,就是将5拆成二进制,5=(101)2,那么就相当于是 2的1乘2的平方乘2的0乘2的一次方乘2的1乘2的0次方,计算了三次,所以快速幂更快。
int fust_pow(int a,int b,int c)//相当于a^b%c
{
int ans=q;
a%=c;
while(b)
{
if(b%2)
ans=(ans%c*ans%c)%c;
a=(a%c*a%c)%c;
b/=2;
}
return ans%c;
}