计算a的b次方
int f(int x, int y, int z)
{
int ans = 1;
x = x%z;
while (y != 0)
{
if (y & 1)
ans = (ans*x) % z;
y >>= 1;
x = (x*x) % z;
}
return ans;
}
本文介绍了一种快速计算 a 的 b 次方再对 z 取模的算法实现。该算法通过位运算和循环结构高效地完成了计算任务,并在每次乘法操作后都进行取模操作以避免整数溢出。
计算a的b次方
int f(int x, int y, int z)
{
int ans = 1;
x = x%z;
while (y != 0)
{
if (y & 1)
ans = (ans*x) % z;
y >>= 1;
x = (x*x) % z;
}
return ans;
}
1578
128

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