二分乘法主要是解决乘法的结果远超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; }
二分乘法。。。。其实。。
原文:https://www.cnblogs.com/shuaihui520/p/8972912.html