我正在尝试实现返回第n个斐波那契数的函数fibonacci(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
正确的斐波那契数列是0、1、1、2、3、5 ...
因此,第一次if
返回和elif n == 2
条件是错误的。正确的代码应为:
def fibonacci(n):
if n == 0 or n == 1:
return n
else:
return fibonacci(n-1) + fibonacci(n-2)
另外,n-1
作为参数传递时无效。你应该只用n
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句