Python 找到斐波那契的第n项,我一直得到一个错误
我试图实现返回第n个斐波那契数的函数斐波那契(n)。对于n=5,我应该得到8,但我得到7 这是我的密码:Python 找到斐波那契的第n项,我一直得到一个错误,python,fibonacci,Python,Fibonacci,我试图实现返回第n个斐波那契数的函数斐波那契(n)。对于n=5,我应该得到8,但我得到7 这是我的密码: def fibonacci(n-1): if n == 0 or n == 1: return 1 elif n == 2: return 2 else: fn = (n-1) + (n-2) return fn 您的公式错误-您需要: def fibonacci(n): if n == 0
def fibonacci(n-1):
if n == 0 or n == 1:
return 1
elif n == 2:
return 2
else:
fn = (n-1) + (n-2)
return fn
您的公式错误-您需要:
def fibonacci(n):
if n == 0 or n ==1:
return 1
elif n == 2:
return 2
else:
fn = fibonacci(n-1) + fibonacci(n-2)
return fn
请注意,这是再次调用斐波那契函数,这是正确的操作。正确的斐波那契序列是0、1、1、2、3、5 因此,第一个
if
返回和elif n==2
条件是错误的。正确的代码应为:
def fibonacci(n):
如果n==0或n==1:
返回n
其他:
返回斐波那契(n-1)+斐波那契(n-2)
另外,
n-1
作为参数传递时无效。您应该只使用n
这是无效的python代码,无法运行-n-1
对于函数签名中的参数是无效语法。发布您的实际代码。试着思考如何使用递归来解决这个问题,在递归中函数会调用自身