c语言 - "compute it modulo 1,000,000,007"是什么意思?



我正在做一道竞赛题。在此处附上摘录-

找到厨师以最佳方式销售汽车所能获得的最大利润。由于这个数字可能很大,所以以1000000007(10^9+7(为模进行计算

这是否意味着我必须找到最终利润除以1000000007的剩余部分?请原谅我这个简单的问题,语言不清楚。

在本注释的上下文中,10^9+7应读作109+7,即1000000007

非常大的数字将超过整数类型的范围,因此要求您计算以1000000007为模的结果(即:计算除以1000000007的余数(,只要通过加法和乘法获得最终结果,只要中间结果超过或等于这个值,就可以通过将中间结果以1000000007的模减少来实现。模块算术有许多更有趣的性质。学生们被告知一种简单的方法来检查算术运算,通过添加数字来计算模9

例如,您可以通过以下方式计算模1000000007的阶乘:

long factorial_mod(int n) {
long res = 1;
for (int i = 2; i <= n; i++) {
res = res * (long long)i % 1000000007;
}
return res;
}

最新更新