C语言程序给定一个整数 n 和 m,求 (0!+1!+2!+……+n!) 对 m 取模之后的结果。
时间: 2024-10-21 22:04:58 浏览: 22
C语言编程-编写函数fun求1!+2!+3!+ …… +n!的和,在main函数中由键盘输入n值,并输出运算结果;
5星 · 资源好评率100%
在C语言中,计算阶乘并取模是一个常见的数学运算和循环结构的应用。你需要编写一个函数来依次计算从0到n的所有正整数的阶乘,然后将它们加起来,最后对m取余数。下面是一个简单的示例函数如何实现这个功能:
```c
#include <stdio.h>
// 计算x的阶乘
unsigned long long factorial(int x, unsigned long long mod) {
if (x == 0 || x == 1) {
return 1; // 0! 和 1! 都等于1
} else {
return (factorial(x - 1, mod) * x) % mod; // 递归计算阶乘并取模
}
}
int main() {
int n, m;
scanf("%d%d", &n, &m);
unsigned long long result = 0;
for (int i = 0; i <= n; ++i) {
result += factorial(i, m); // 累加阶乘结果并取模
}
printf("%llu\n", result % m); // 输出最终结果对m取模后的值
return 0;
}
```
在这个程序中,`factorial()` 函数用于递归地计算阶乘,而 `main()` 函数负责读入输入、计算总和并对结果取模。
阅读全文