c语言:编写求阶乘函数fact(),利用它计算并返回1!+2!+3!+……+n!的值。
时间: 2024-12-22 21:27:58 浏览: 2
c代码-1!+2!+3!+....+n!=?
在C语言中,你可以编写一个递归的`factorial()`函数来计算阶乘,然后通过循环迭代计算从1到n所有数的阶乘之和。下面是一个示例代码:
```c
#include <stdio.h>
// 定义计算阶乘的函数
unsigned long long factorial(int n) {
if (n == 0 || n == 1) { // 阶乘的基本情况,0! 和 1! 等于1
return 1;
} else {
return n * factorial(n - 1); // 递归调用,计算n的阶乘
}
}
// 计算1! + 2! + ... + n! 的总和
unsigned long long sum_of_factorials(int n) {
unsigned long long sum = 0;
for (int i = 1; i <= n; ++i) {
sum += factorial(i);
}
return sum;
}
int main() {
int n;
printf("Enter a positive integer to compute the sum of factorials up to: ");
scanf("%d", &n);
if (n > 0) {
unsigned long long result = sum_of_factorials(n);
printf("The sum of factorials from 1! to %d! is: %llu\n", n, result);
} else {
printf("Invalid input, please enter a positive number.\n");
}
return 0;
}
```
在这个程序中,用户输入一个正整数n,`sum_of_factorials()`函数会调用`factorial()`来计算每个数的阶乘并将它们加起来。
阅读全文