n!用Python的迭代算法和递归算法的代码
时间: 2024-03-01 17:53:56 浏览: 161
迭代与递归算法
下面是使用迭代算法和递归算法分别计算 n! 的 Python 代码:
迭代算法:
```python
def factorial_iterative(n):
result = 1
for i in range(1, n+1):
result *= i
return result
```
这个算法使用一个循环语句来计算 n!,从1到n逐一相乘,并将结果存储在变量result中。
递归算法:
```python
def factorial_recursive(n):
if n == 0:
return 1
else:
return n * factorial_recursive(n-1)
```
这个算法使用递归来计算 n!,如果n等于 0,则返回 1,否则返回n和n-1的阶乘的乘积。这里的关键点是函数调用自身,直到n变为0时停止递归。
需要注意的是,递归算法在计算过程中会不断调用自己,因此可能会导致调用栈溢出的问题。对于大的n,迭代算法的性能也会更好。
阅读全文