写一个C程序计算s=1!+2!……n!
时间: 2024-10-23 08:04:22 浏览: 22
在C语言中编写一个计算从1到n所有正整数阶乘之和的程序,你可以使用递归函数来求解每个阶乘,然后累加结果。下面是一个简单的示例:
```c
#include <stdio.h>
unsigned long long factorial(int n) {
if (n == 0 || n == 1)
return 1;
else
return n * factorial(n - 1);
}
unsigned long long sum_of_factorials(int n) {
unsigned long long result = 0;
for (int i = 1; i <= n; i++) {
result += factorial(i);
}
return result;
}
int main() {
int n;
printf("请输入一个正整数n: ");
scanf("%d", &n);
if (n < 0) {
printf("输入错误,阶乘只对非负整数有效.\n");
} else {
unsigned long long sum = sum_of_factorials(n);
printf("1! + 2! + ... + %d! = %llu\n", n, sum);
}
return 0;
}
```
在这个程序中,`factorial` 函数用于计算给定数的阶乘,`sum_of_factorials` 函数则遍历1到n,并累加它们的阶乘。注意这里使用 `unsigned long long` 类型存储阶乘的结果,因为较大的阶乘可能会超出 `long` 的范围。
阅读全文