用递归非递归方法实现斐波那契
时间: 2024-09-15 21:06:54 浏览: 38
c#斐波那契数列(Fibonacci)(递归,非递归)实现代码
5星 · 资源好评率100%
斐波那契数列是一个经典的数学问题,可以用递归和非递归的方式求解。以下是两种方法:
**递归方法** (虽然简洁,但效率较低,因为存在大量的重复计算)
```python
def fibonacci_recursive(n):
if n <= 0:
return "输入错误,n必须大于0"
elif n == 1 or n == 2:
return 1
else:
return fibonacci_recursive(n - 1) + fibonacci_recursive(n - 2)
```
**非递归方法** (使用循环,更高效)
```python
def fibonacci_iterative(n):
if n <= 0:
return "输入错误,n必须大于0"
a, b = 0, 1
for _ in range(1, n+1):
a, b = b, a + b
return a
```
在这个非递归版本中,我们用变量`a`和`b`分别存储前两个数,然后通过迭代更新这两个值,直到达到第`n`项。
阅读全文