6-5 递归函数求n! (10 分)
时间: 2023-04-25 22:05:17 浏览: 64
递归函数求n!的方法是将n!拆分为n*(n-1)!,然后再递归求解(n-1)!,直到n=1时返回1。具体实现可以参考以下代码:
```python
def factorial(n):
if n == 1:
return 1
else:
return n * factorial(n-1)
```
这个函数会不断调用自身,直到n=1时停止递归,返回1。在每次递归中,都会将n乘以(n-1)!的结果返回,最终得到n!的值。
相关问题
6-5 递归函数求n!
求 n! 的递归函数可以定义如下:
```python
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
```
当 n 为 0 时,返回 1;否则,返回 n 与 n-1 的阶乘之积。这里使用了递归,每次调用函数时将问题规模减小,直到问题规模为 0 时得到答案。该函数可以计算任意正整数 n 的阶乘。
用递归函数求 n!, 调用函数求 1!+2!+……+10!=?
以下是递归函数求n!的Python代码和1!+2!+……+10!的结果:
```python
# 递归函数求n!
def factorial(n):
if n == 1:
return 1
else:
return n * factorial(n-1)
# 求1!+2!+……+10!
sum = 0
for i in range(1, 11):
sum += factorial(i)
print(sum) # 输出:4037913
```
在引用中的C++代码中,函数lj(int i)的返回值类型为int,但是在函数中并没有return语句,因此当i==0时,函数返回的值是未定义的。在引用中,当i==0时,sum1被赋值为0而不是1,因为0的阶乘为1,而不是0。函数返回的值是sum1,因此当i==0时,函数返回的值是0而不是1。