用python编写程序,输入n,通过递推函数求斐波那契数列第n项值
时间: 2024-05-07 17:20:26 浏览: 13
可以使用递归或动态规划的方式求解斐波那契数列第n项值,以下是动态规划的实现方式:
```python
def fibonacci(n):
if n < 0:
return None
if n == 0 or n == 1:
return n
f = [0] * (n + 1)
f[0] = 0
f[1] = 1
for i in range(2, n + 1):
f[i] = f[i - 1] + f[i - 2]
return f[n]
```
在上面的代码中,f列表用来保存前n项斐波那契数列的值,f[0]初始化为0,f[1]初始化为1,然后使用循环依次计算f[2]到f[n]的值,最后返回f[n]即可。需要注意的是,当n小于0时,返回None。
相关问题
Python编写函数fib(n),求斐波那契数列的前n个数据,返回值是斐波那契数列前n个数据的列表
可以使用递推的方法,从头开始按照斐波那契数列的定义计算每个数,并将它们依次添加到一个列表中。具体实现如下:
```python
def fib(n):
"""
返回斐波那契数列的前n个数据
"""
fib_list = []
a, b = 0, 1
for i in range(n):
fib_list.append(b)
a, b = b, a + b
return fib_list
```
这里使用了Python的多重赋值语法,可以同时给多个变量赋值。在每次循环中,将b添加到列表中,然后将a和b更新为它们的下一个值。最后返回列表即可。
例如,调用`fib(5)`会返回`[1, 1, 2, 3, 5]`,它是斐波那契数列的前5个数字。
python中如何用递归函数求斐波那契数列
斐波那契数列是指:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ……
斐波那契数列的递推公式为:F(n) = F(n-1) + F(n-2),其中 F(1)=1,F(2)=1。
下面是使用递归函数求斐波那契数列的代码示例:
```python
def fib(n):
if n <= 0:
return 0
elif n == 1 or n == 2:
return 1
else:
return fib(n-1) + fib(n-2)
```
这个递归函数的思路是:当 n <= 0 时,返回 0;当 n 等于 1 或 2 时,返回 1;当 n 大于等于 3 时,递归调用 fib(n-1) 和 fib(n-2)。