【快速幂取模运算】
//取模运算(a*b)%c = (a%c)*(b%c)%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;
}
【用快速幂求a的n次方】
涉及大数
long long sum,x;
int a,n;
x = a,sum = 1;
while(n)
{
if(n%2)
sum*=x;
n>>1;//等价于n/=2
x = x*x;
}
本文介绍了如何使用快速幂取模算法进行高效的模运算,并展示了如何利用该方法处理大数的乘方运算。通过具体的代码实现,帮助读者理解算法的工作原理。
653

被折叠的 条评论
为什么被折叠?



