一、分别使用递归方法和循环方法设计斐波那契数列(1,1,2,3,5,……),接受一个整数n作为输入,输出第n位斐波那契数。并说明两种方法的优劣。
时间: 2024-09-19 07:06:02 浏览: 14
斐波那契数列是一种经典的数列,其特点是每个数字都是前两个数字之和。以下是递归方法和循环方法实现斐波那契数列的示例:
1. **递归方法**:
```python
def fibonacci_recursive(n):
if n <= 0:
return "错误:输入必须大于0"
elif n == 1 or n == 2:
return 1
else:
return fibonacci_recursive(n - 1) + fibonacci_recursive(n - 2)
```
优点:简洁直观,对于较小的n值效率较高,易于理解递归思想。
缺点:当n较大时,递归会重复计算很多已经求出的项,效率低下,可能会导致栈溢出。
2. **循环方法**:
```python
def fibonacci_iterative(n):
if n <= 0:
return "错误:输入必须大于0"
a, b = 0, 1
for _ in range(n - 1):
a, b = b, a + b
return a
```
优点:对于大的n值,循环方法不会重复计算,时间复杂度相对较低,不容易引发栈溢出问题。
缺点:代码结构不如递归清晰,初学者可能需要花更多时间理解循环过程。