/*a*b (mod m) 的实现过程*/
/*当a,b很大的时候mod m就会产生溢出, 故运用乘法原理转换为加法求解*/
LL multi(LL a, LL b, LL m)
{
LL exp = a %m, res = 0;
while (b)
{
if (b & 1) //b的最低位是否为1
{
res = res + exp;
if (res >= m)
res = res -m;
}
exp = exp *2;
if (exp > m)
exp = exp - m;
b >>= 1; //将b除以2
}
return res;
} a*b(mod m)的实现过程
最新推荐文章于 2022-07-23 18:28:49 发布
本文介绍了一种处理大数乘法模运算的有效算法。通过将乘法转换为加法来避免溢出问题,适用于a*b(mod m)的场景,尤其是在a和b都非常大的情况下。该算法使用位操作和循环来逐步完成计算。
1万+

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



