如何在C语言中定义一个函数来计算从1!到n!的累加和,并在主程序中接收用户输入的整数n后调用该函数显示计算结果?
时间: 2024-11-05 13:27:32 浏览: 15
在C语言中,为了计算阶乘的累加和,我们可以先定义一个函数`factorial_sum(n)`来计算从1!到n!的总和,然后在主程序中获取用户输入并调用该函数。由于计算阶乘可能会导致数值溢出,特别是对于较大的n值,可以使用迭代而不是递归来避免这个问题。
以下是代码示例:
```c
#include <stdio.h>
// 计算n的阶乘
unsigned long long factorial(int n) {
unsigned long long fact = 1;
for (int i = 1; i <= n; ++i) {
fact *= i;
}
return fact;
}
// 计算从1!到n!的累加和
unsigned long long factorial_sum(int n) {
unsigned long long sum = 0;
for (int i = 1; i <= n; ++i) {
sum += factorial(i);
}
return sum;
}
int main() {
int n;
printf("请输入一个正整数n: ");
scanf("%d", &n);
// 检查输入是否有效
if (n < 0) {
printf("输入错误!请输入正整数。\n");
} else {
unsigned long long result = factorial_sum(n);
printf("从1!到%d!的累加和为: %llu\n", n, result);
}
return 0;
}
阅读全文