当一些整数的值过大,如::(int)1e9,但又需要对n个这样的数做加减乘除运算,很容易超过过数据范围,为解决这个问题,就会在每一次运算后对这个结果进行取模
加法同余#
(((a+b)%m+c)%m)%m=(a+b+c)%m
注意 a+b 时可能超过当前的数据类型,需要使用更大类型来承接,如 (long long)(a+b)
乘法同余#
(((a*b)%m*c)%m)%m=(a*b*c)%m
注意 a*b 时可能超过当前的数据类型,需要使用更大类型来承接,如 (long long)(a*b)
减法同余#
(a%m-b%m-c%m+m)%m=abs(a-b-c)%m
加上m,如(a%m-b%m+m)%m,可保证它为一个正数
