用c语言编写程序,输入n(n<=20),计算并输出从0到n的阶乘之和。
时间: 2024-10-25 18:15:05 浏览: 154
在 C 语言中,你可以通过循环结构和递归函数来计算从 0 到 n 的阶乘之和。下面是一个简单的示例,使用了迭代方式避免递归带来的性能影响:
```c
#include <stdio.h>
// 计算阶乘的辅助函数
unsigned long long factorial(int n) {
unsigned long long fact = 1;
for (int i = 1; i <= n; ++i) {
fact *= i;
}
return fact;
}
// 主函数计算阶乘之和
unsigned long long sum_of_factorials(int n) {
unsigned long long sum = 0;
for (int i = 0; i <= n; ++i) {
sum += factorial(i);
}
return sum;
}
int main() {
int n;
printf("请输入一个不超过20的正整数:");
if (scanf("%d", &n) == 1 && n <= 20) {
unsigned long long result = sum_of_factorials(n);
printf("从0到%d的阶乘之和是:%llu\n", n, result);
} else {
printf("输入错误!\n");
}
return 0;
}
```
这个程序首先定义了一个 `factorial` 函数来计算阶乘,然后在 `sum_of_factorials` 函数中计算阶乘之和。主函数接收用户的输入,并验证是否在范围内。
阅读全文