转自:HyperDai
原文链接
编程竞赛有相当一部分题目的结果过于庞大,整数类型无法存储,往往只要求输出取模的结果。
例如(a+b)%p,若a+b的结果我们存储不了,再去取模,结果显然不对,我们为了防止溢出,可以先分别对a取模,b取模,再求和,输出的结果相同。
a mod b表示a除以b的余数。有下面的公式:
- (a + b) % p = (a%p + b%p) %p
- (a - b) % p = ((a%p - b%p) + p) %p
- (a * b) % p = (a%p)*(b%p) %p
注意对于除法取模,我们不能直接分别取模了,详见逆元。