为什么菲诺纳奇(8)+菲波纳奇(7)=34而不是15?

2024-06-11 08:59:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我的目标是制作一些表示斐波那契螺旋的代码。在我的冒险中,我找到了一些代码来制作一个。我想研究它,看看它能做什么。然而,我似乎得到了错误的输出

def fibonachi(n):
    if n < 0:
        print("Incorrect number")


    elif n == 1 or n == 2:
       return 1
    else:
       return fibonachi(n - 1) + fibonachi(n - 2)
print(fibonachi(9))

预期输出:15(原因8+7=15) 实际产出:34

这与应该发生的事情是一致的,但我不明白这是怎么发生的。有人能解释一下吗


Tags: or代码number目标returnifdef错误
2条回答

好了,现在我明白了

基本上,当我调用fibo9时,我编写的代码告诉它调用fibo8和fibo7。这两个分离成各自的fibo,直到N==1或2。然后,代码将其全部添加到一个漂亮的34中

您没有实现以下情况n == 0

def fibonacci(n):
if n < 0:
    print("Incorrect number")
elif n == 0:
    return 0


elif n == 1 or n == 2:
   return 1
else:
   return fibonacci(n - 1) + fibonacci(n - 2)
print(fibonacci(9))

相关问题 更多 >