编写一个求阶乘的递归和非递归函数,输入10以内所以数的阶乘
时间: 2024-11-24 20:41:26 浏览: 9
当然可以。首先,我们来看看如何编写一个递归函数来计算阶乘:
```python
def recursive_factorial(n):
if n == 0 or n == 1: # 基线条件:0和1的阶乘都是1
return 1
else:
return n * recursive_factorial(n - 1) # 递归调用,n乘以(n-1)的阶乘
# 非递归版本,也称为循环法
def non_recursive_factorial(n):
result = 1
for i in range(1, n + 1): # 循环遍历从1到n
result *= i
return result
```
现在,我们可以分别计算1到10内所有整数的阶乘。请注意,由于阶乘的增长非常快,对于较大的数,递归可能会导致栈溢出,而非递归方式则更稳健。
递归示例(仅适用于1到5的阶乘,因为6及以上会触发递归深度限制):
```python
for i in range(1, 6):
print(f"factorial of {i} (recursive):", recursive_factorial(i))
for i in range(1, 6):
print(f"factorial of {i} (non-recursive):", non_recursive_factorial(i))
```
相关问题
使用Python编写一个求阶乘的递归函数,并进行调用求10的阶乘。
好的,下面是代码:
```python
def factorial(n):
if n == 1:
return 1
else:
return n * factorial(n-1)
result = factorial(10)
print(result)
```
输出结果为:
```
3628800
```
在这里,我们定义了一个名为 `factorial` 的递归函数来计算阶乘。函数接受一个参数 `n`,表示要求的阶乘数。当 `n` 等于 1 时,我们返回 1,否则我们递归调用 `factorial` 函数来计算 `n-1` 的阶乘,然后将 `n` 乘以该结果得到 `n` 的阶乘。最后,我们调用 `factorial` 函数来计算 10 的阶乘,并将结果存储在变量 `result` 中,最后打印出来。
编写递归函数求阶乘Python
递归函数是指在函数定义中调用函数本身的方法。对于求阶乘的问题,可以使用递归函数进行求解。下面是一个求解阶乘的Python递归函数:
```python
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
```
在这个递归函数中,如果输入的参数为0,则返回1;否则,返回输入参数n乘上递归调用自身函数并将参数减1的结果。
例如,如果我们要计算5的阶乘,可以调用这个函数:
```python
result = factorial(5)
print(result) # 输出120
```
阅读全文