请编写函数,求阶乘之和。 SumFac(n)=0!+1!+2!+3+⋯+n! C语言
时间: 2024-09-17 17:09:03 浏览: 99
计算 S=1!+2!+3!+...+N! C语言代码
在C语言中,你可以编写一个递归函数来计算阶乘之和。这是一个基本的递归算法,因为每个阶乘都是前一个阶乘加上当前数。
```c
#include <stdio.h>
unsigned long long factorial_sum(int n) {
if (n == 0 || n == 1) // 0! 和 1! 的特殊情况直接返回它们的值
return n;
else
return factorial_sum(n - 1) + n * factorial_sum(n - 1); // 递归计算 n! 的和
}
int main() {
int n;
printf("请输入一个正整数: ");
scanf("%d", &n);
unsigned long long result = factorial_sum(n);
printf("阶乘之和 (%d!) is: %llu\n", n, result);
return 0;
}
```
注意,由于阶乘增长非常快,当 `n` 较大时,计算可能会溢出标准的 `int` 或 `long` 类型,因此我们使用 `unsigned long long` 来存储结果。
阅读全文