c++ - 如何找到数字总和的模数?

标签 c++ math modulo

我正在寻找一种方法来查找一系列数字的模,例如: (a1 + a2 + a3 + a4 + ... + an) mod x

有没有模函数的任何方式/属性,以便我可以从序列中的数字模数中计算出这个序列的模数。

最佳答案

我记得。你可以:

(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;

关于c++ - 如何找到数字总和的模数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26323271/

相关文章:

c++ - 在Qt中如何检查插入的SD卡是否写保护?

c - 关于使用数组和位 vector 的集合

javascript - JavaScript 中最快的模幂运算

c# - 翻转二进制数的一位可以得到的最大连续1或0

java - Java 模运算符的错误结果?

正参数的 C 余数/模运算符定义

c++ - BigInteger 数字实现和性能

c# - 更改进程的基址指针

php - 绕过我的需要明文大小的 XOR 加密的方法

math - 将 Sympy 表达式简化为变量的隐式函数