输入一个n,从1到n的阶乘依次相加求和,c语言
时间: 2024-11-28 08:26:35 浏览: 7
在C语言中,计算从1到n的阶乘之和可以使用循环结构,并借助递归来计算阶乘。这里是一个简单的示例程序:
```c
#include <stdio.h>
// 阶乘函数
unsigned long long factorial(int n) {
if (n == 0 || n == 1)
return 1; // 0! 和 1! 等于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) { // 检查输入是否有效
unsigned long long sum = sum_of_factorials(n);
printf("从1到%d的阶乘之和是: %llu\n", n, sum);
} else {
printf("输入错误,请输入一个非负整数。\n");
}
return 0;
}
```
在这个程序里,`factorial`函数用于计算给定数字的阶乘,而`sum_of_factorials`函数则遍历1到n,将每个阶乘累加到结果中。
阅读全文