零起点学算法35——求阶乘
时间: 2024-10-22 18:22:08 浏览: 15
递归算法求阶乘.rar
5星 · 资源好评率100%
学习算法中的阶乘是一个基础概念,它表示一个正整数n的所有小于等于它的正整数相乘的结果。例如,5的阶乘 (5!) 等于 5 x 4 x 3 x 2 x 1 = 120。
求阶乘有多种常见的计算方法:
1. **循环迭代法**:
使用for循环,从1开始递增到输入数字n,每次相乘。这是一个直观易懂的实现方式。
```python
def factorial(n):
result = 1
for i in range(1, n + 1):
result *= i
return result
```
2. **递归法**:
对于较小的n值,递归也是一个可行的选择。递归函数会不断将问题规模缩小,直到基本情况(如n=0或1时,阶乘结果为1)。
```python
def factorial_recursive(n):
if n == 0 or n == 1:
return 1
else:
return n * factorial_recursive(n - 1)
```
注意:递归版本虽然简洁,但对于大数值可能会导致栈溢出,因为每次调用都会占用额外的空间。
阅读全文