大数取模公式的理解

时间:2022-12-20 23:12:31

大数取模公式的理解

公式:(a+b)%m=(a%m+b%m)%m。
所以大数比如1234%m可以拆分为:*1234=((1*10+2)*10+3)*10+4 mod m。
然后有代码:

int num=0;
for(int i=0;i<number.length;++i){
num=(num*10+number[i]-'0')%m;
}
return num;

这里num*10是上一次低位的数取模之后数,乘以10之后,再取模,对结果是没有影响的,a%m=a*10%m,a%m=a%m%m。