使用身份减去模数

时间:2018-05-28 16:03:58

标签: c++ mod

在各种模数身份中,减法身份表明:

(a - b) % c = (a % c - b % c) % c

但是,如果我看一下这个a = 508, b = 201 and c = 101的例子,我使用该身份的答案是否定的,这是不正确的。我在c ++中的程序使用大数的阶乘(不是从1开始,而是从用户给定的输入到另一个数)模10^9 + 7减去另一个阶乘数(小于第一个值)mod {{1}但是我得到负值,或者在使用无符号long long时溢出。

是否有任何可能的实现来获得正确的输出?

1 个答案:

答案 0 :(得分:1)

是。我想它应该如下

((a%c - b%c) % c + c) % c

如果a = 12b = 7c = 10那么 (a%c - b%c)%c会给-5 然后添加c并再次修改它将导致5这是正确答案