__int64a*b%c不超上限的位运算方法

来源:互联网 发布:图片重叠软件 编辑:程序博客网 时间:2024/04/29 00:22
LL mul(LL a, LL b, LL c){
    LL r= 0;
    while(b){
        if(b&1) if((r+=a) >= c) r-=c;
        a<<=1;
        if(a>=c) a-=c;
        b>>=1;
    }
    return r;
}