c语言利用函数的递归调用求解1!+2!+…+n!
时间: 2023-08-04 09:05:58 浏览: 102
c语言求1+2+...+n的解决方法
好的,这道题目可以使用递归的方法来解决。具体实现如下:
```c
#include <stdio.h>
int factorial(int n) {
if(n <= 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
int sum_of_factorials(int n) {
if(n == 1) {
return 1;
} else {
return factorial(n) + sum_of_factorials(n - 1);
}
}
int main() {
int n;
printf("请输入一个正整数n:");
scanf("%d", &n);
printf("1! + 2! + ... + %d! = %d\n", n, sum_of_factorials(n));
return 0;
}
```
首先,我们定义了一个计算阶乘的函数 `factorial`,然后我们定义了一个计算1!+2!+...+n!的函数 `sum_of_factorials`,在这个函数中,我们调用了 `factorial` 函数来计算每个阶乘的值,并且递归调用了 `sum_of_factorials` 函数来计算前面所有阶乘的和。最后,在 `main` 函数中,我们输入了一个正整数n,并且调用 `sum_of_factorials` 函数来计算1!+2!+...+n!的值,并输出结果。
希望能够帮到你!
阅读全文