那是代碼(我使用 python 3):def fibonacci(x): if x == 1 or 2: return 1 f = fibonaci(x-1) + fibonaci(x-2) return fprint(fibonacci(4))我想得到的輸出是 3,這是第四個斐波那契數(shù)。但是我得到 1 作為輸出。f = fibonaci(x-1) + fibonaci(x-2)我認為該代碼沒有執(zhí)行我想要它執(zhí)行的操作??梢哉f我會把它fibonacci(3)作為我的輸入。我認為應該發(fā)生的事情: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
。
然而,這仍然是錯誤的,因為在斐波那契數(shù)列中,前兩個數(shù)字是0
和1
,所以:
if x <= 1: return x
添加回答
舉報
0/150
提交
取消