C++ 如何求数和的模?

C++ 如何求数和的模?,c++,math,modulo,C++,Math,Modulo,我在寻找一种方法来求一系列数字的模,比如: (a1+a2+a3+a4+…+an)模块x 模函数是否有任何方法/性质,以便我可以从序列中的单个数模计算出这个序列的模。模算子是分布的 ( x + y ) % z 。。。相当于: ( x % z + y % z ) % z 我记得。你可以: (a1 mod x + a2 mod x + a3 mod x + ... + an mod x) mod x 这样的等式有利于一个目的。如果数字之和超过用于求和的变量的容量。例如,32位整数 这样一来,模和

我在寻找一种方法来求一系列数字的模,比如: (a1+a2+a3+a4+…+an)模块x


模函数是否有任何方法/性质,以便我可以从序列中的单个数模计算出这个序列的模。

模算子是分布的

( x + y ) % z
。。。相当于:

( x % z + y % z ) % z

我记得。你可以:

(a1 mod x + a2 mod x + a3 mod x + ... + an mod x) mod x
这样的等式有利于一个目的。如果数字之和超过用于求和的变量的容量。例如,32位整数

这样一来,模和很可能适合用于求和的所用var。取决于x值和序列长度

示例代码

int sum = 0;
for (int i=0;i<n;i++)
   sum += a[i] % x;
int mod = sum % x;
int sum = 0;
for (int i=0;i<n;i++) {
   sum += a[i] % x;
   sum %= x;
}
int mod = sum;
int和=0;

对于(inti=0;i你知道(a+b)%x=((a%x)+(b%x))%x,对吗?我有完全相同的问题。你找到答案了吗?