您的位置:首页 > 其它

快速幂

2018-02-09 12:15 78 查看
鉴于快速幂的低复杂度和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:快速幂只适合小精度的运算,对高精度乘法,如果不能取模,可以用大数运算
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: