用函数调用的递归法计算机求 ∑=1!+2!+⋯.+ n!
时间: 2023-12-07 09:38:22 浏览: 48
以下是使用函数调用的递归法计算n!和∑的例子:
```c
#include <stdio.h>
int factorial(int n) {
if (n == 0) {
return 1;
} else {
return n * factorial(n - 1);
}
}
int 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("1!+2!+...+%d!的和为:%d\n", n, sum(n));
return 0;
}
```
相关问题
用递归法求Sn=1!+2!+3!+4!+5!+…+n!之值,其中n是一个数字
以下是使用递归法求解Sn=1!+2!+3!+4!+5!+…+n!之值的Python代码:
```python
def factorial(n):
if n == 1:
return 1
else:
return n * factorial(n-1)
def sum_factorial(n):
if n == 1:
return 1
else:
return factorial(n) + sum_factorial(n-1)
n = 5
print("Sn的值为:", sum_factorial(n))
```
运行结果为:
```
Sn的值为: 153
```
解释一下代码的思路:
首先定义一个递归函数factorial(n),用于计算n的阶乘。当n等于1时,返回1;否则返回n乘以factorial(n-1)的结果。
然后定义另一个递归函数sum_factorial(n),用于计算Sn的值。当n等于1时,返回1;否则返回factorial(n)加上sum_factorial(n-1)的结果。
最后,我们设定n的值为5,调用sum_factorial(n)函数,输出Sn的值。
用递归法求1!+2!+﹉+n!
以下是使用递归函数调用阶乘方法求和的Python代码:
```python
def jie(n):
if n == 1:
return 1
else:
return n*jie(n-1)
n = int(input("请输入一个正整数n:"))
sum = 0
if n < 1 or n > 40:
print("n的值应在1~40间,请重新输入数据")
else:
for i in range(1, n+1):
sum += jie(i)
print("1!+2!+...+n!的和为:", sum)
```