鉴于快速幂的低复杂度和pow的精度问题,以后还是都用快速幂吧。
快速幂
int pow(int x, int n)
{
int result = 1;
while (n > 0)
{
if (n % 2==1)
result *= x;
x *= x;
n /=2 ;
}
return result;
}
求模c
int PowerMod(int a, int b, int c)
{
int ans = 1;
a = a % c;
while(b>0)
{
if(b % 2 = = 1)
ans = (ans * a) % c;
b = b/2;
a = (a * a) % c;
}
return ans;
}
板子问题,直接用。
ps:快速幂只适合小精度的运算,对高精度乘法,如果不能取模,可以用大数运算