求斐波那契数列的第 n 项我总是出错
Find the n-th term for fibonacci I keep getting an error
我正在尝试实现 returns 第 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
您的公式有误 - 您需要:
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
return和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
我正在尝试实现 returns 第 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
您的公式有误 - 您需要:
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
return和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