64位整数乘法

64位整数乘法,第1张

64位整数乘法

代码:

#include
using namespace std;
typedef long long LL;
LL a,b,p;
//把b拆成2位进制
int main()
{
    cin>>a>>b>>p;
    LL  res = 0;
    while(b)
    {
        if(b&1)
            res = (res + a)%p;
        a = (a*2)%p;
        b>>=1;
    }
    cout << res< 

 感想:太容易溢出了,救命 害

 对于(a%p)*(b%p)依然容易溢出,因为对于p十分大的时候,a%p是没有用的,同理b%p也是没有用的,最后依然可能是 a*b的效果而导致溢出

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5651077.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存