二分乘法。。。。其实。。

二分乘法主要是解决乘法的结果远超int范围,但需要的结果有取余的乘法运算

LL multi(LL a,LL b,LL m)
{
    LL ans = 0;
    a %= m;
    while(b)
    {
        if(b & 1)
        {
            ans = (ans + a) % m;
            b--;
        }
        b >>= 1;
        a = (a + a) % m;
    }
    return ans;
}
View Code

猜你喜欢

转载自www.cnblogs.com/shuaihui520/p/8972912.html