那是代碼(我使用 python 3):def fibonacci(x): if x == 1 or 2: return 1 f = fibonaci(x-1) + fibonaci(x-2) return fprint(fibonacci(4))我想得到的輸出是 3,這是第四個斐波那契數。但是我得到 1 作為輸出。f = fibonaci(x-1) + fibonaci(x-2)我認為該代碼沒有執行我想要它執行的操作。可以說我會把它fibonacci(3)作為我的輸入。我認為應該發生的事情:f = fibonacci(3-1) + fibonacci(3-2)fibonacci(3-1)并且fibonacci(3-2)都應該返回 1 嗎?所以f應該 = 2 并且fibonacci(3)應該給我 2 作為輸出。但是我得到的輸出仍然是1。錯誤在哪里?
1 回答

縹緲止盈
TA貢獻2041條經驗 獲得超4個贊
錯誤在你的if
條款中。你的意思大概是這樣的:
if x == 1 or x == 2:
一如既往if 2
的“真實”,所以對于任何x
你都會得到1
。
然而,這仍然是錯誤的,因為在斐波那契數列中,前兩個數字是0
和1
,所以:
if x <= 1: return x
添加回答
舉報
0/150
提交
取消