C语言题目描述:用递归求Sn=1!+2!+3!+4!+5!+…+n!之值,其中n是一个数字
时间: 2023-11-09 19:00:17 浏览: 225
可以用递归来求Sn=1! 2! 3! 4! 5! … n!之值。递归的基本思想是:将大问题分解成一个或多个小问题,然后递归地解决每个小问题,最后将小问题的解组合成大问题的解。对于这个问题,我们可以将Sn分解成Sn-1和n!两部分,然后递归地求解Sn-1即可。
以下是C语言的代码实现:
```
#include <stdio.h>
int factorial(int n) {
if (n == 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
int main() {
int n, result;
printf("请输入一个正整数n:");
scanf("%d", &n);
result = factorial(n);
printf("Sn的值为:%d\n", result);
return 0;
}
```
输入一个正整数n,程序会递归地计算出Sn的值并输出。
相关问题
题目描述:用递归求Sn=1!+2!+3!+4!+5!+…+n!之值,其中n是一个数字。C语言编辑
以下是用递归求Sn=1!+2!+3!+4!+5!+…+n!之值的C语言代码:
```c
#include <stdio.h>
long long factorial(int n) {
if (n == 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
long long sum(int n) {
if (n == 1) {
return 1;
} else {
return factorial(n) + sum(n - 1);
}
}
int main() {
int n;
printf("请输入一个数字n:");
scanf("%d", &n);
printf("Sn的值为:%lld", sum(n));
return 0;
}
```
阅读全文