用c语言编程求 1!+2!+3!+…+n!(n 从键盘输入)。
时间: 2024-12-23 13:22:49 浏览: 1
在 C 语言中,我们可以编写一个程序来计算从 1 到 n 的阶乘之和。这里我们首先需要定义阶乘函数 `factorial` 来计算每个数的阶乘,然后在主程序中读取用户输入的 n,并累加所有小于等于 n 的数的阶乘。
```c
#include <stdio.h>
// 计算阶乘的递归函数
unsigned long long factorial(int num) {
if (num == 0 || num == 1)
return 1;
else
return num * factorial(num - 1);
}
int main() {
int n;
printf("请输入一个正整数 n: ");
scanf("%d", &n);
unsigned long long sum = 0; // 初始化阶乘和为0
for (int i = 1; i <= n; ++i) {
sum += factorial(i); // 累加每个数的阶乘
}
printf("1! + 2! + 3! + ... + %d! = %llu\n", n, sum);
return 0;
}
```
在这个程序中,我们需要注意的是当 `num` 较大时,阶乘的结果可能会超出 `int` 类型所能表示的最大值,所以我们使用了 `unsigned long long` 类型来存储结果。此外,由于递归深度限制,对于非常大的 `n`,这个程序可能会遇到栈溢出的问题。
阅读全文