乘法取模
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了乘法取模相关的知识,希望对你有一定的参考价值。
当我要计算两个数相乘后取模的结果时,可以这样写:
1 typedef long long LL; 2 3 LL multi(LL a, LL b, LL mo){ 4 LL ans = 0; 5 while(b){ 6 if(b & 1){ 7 ans += a; 8 if(ans >= mo){ 9 ans -= mo; 10 } 11 } 12 a <<= 1; 13 if(a >= mo){ 14 a -= mo; 15 if(a == 0) return ans; 16 } 17 b >>= 1; 18 } 19 return ans; 20 }
这样可以防止中间过程溢出,但速度可能不是辣么快。
以上是关于乘法取模的主要内容,如果未能解决你的问题,请参考以下文章
codevs1281 矩阵乘法 快速幂 !!!手写乘法取模!!! 练习struct的构造函数和成员函数