快速幂快速乘
pow()返回double,有精度误差
1.快速幂
1 LL qpow(LL a,LL b,LL MOD) //pow(a,b)%MOD 2 { 3 LL ret=1; 4 while (b) 5 { 6 if (b & 1) ret=(ret*a)%p; 7 a=(a*a)%p; 8 b>>=1; 9 } 10 return ret; 11 }
2.快速乘
1 LL qmul(LL a,LL b,LL MOD) //计算a*b%MOD 2 { 3 LL ret=0; 4 while (b) 5 { 6 if (b & 1) ret=(ret+a)%MOD; 7 a=(a+a)%MOD; 8 b>>=1; 9 } 10 return ret; 11 }