斐波那契数列是一个经典的递归问题,其定义为:F(0)=0, F(1)=1, 对于所有n>=2, F(n)=F(n-1)+F(n-2)。
在Python中,我们可以使用循环和递归来实现斐波那契数列的计算。这里我们使用循环的方法实现,因为循环更简洁,易于理解。
```python
def fibonacci(n):
if n <= 0:
return "输入错误,请输入正整数"
elif n == 1:
return 0
elif n == 2:
return 1
else:
a, b = 0, 1
for _ in range(2, n):
a, b = b, a + b
return b
```
在这个函数中,我们首先检查输入的n是否为正整数。如果不是,我们返回一个错误信息。如果是,我们检查n是否为1或2,并返回相应的值。否则,我们初始化两个变量a和b,分别表示斐波那契数列的前两项,然后使用for循环计算第n项的值。在每次循环中,我们将b的值赋给a,将a和b的和赋给b,这样就可以得到第n项的值。最后,我们返回第n项的值。
这个函数的时间复杂度为O(n),空间复杂度为O(1),因为我们需要存储的变量数量与输入的n无关。