那是代碼(我使用 python 3):def fibonacci(x): if x == 1 or 2: return 1 f = fibonaci(x-1) + fibonaci(x-2) return fprint(fibonacci(4))我想得到的輸出是 3,這是第四個(gè)斐波那契數(shù)。但是我得到 1 作為輸出。f = fibonaci(x-1) + fibonaci(x-2)我認(rèn)為該代碼沒(méi)有執(zhí)行我想要它執(zhí)行的操作??梢哉f(shuō)我會(huì)把它fibonacci(3)作為我的輸入。我認(rèn)為應(yīng)該發(fā)生的事情:f = fibonacci(3-1) + fibonacci(3-2)fibonacci(3-1)并且fibonacci(3-2)都應(yīng)該返回 1 嗎?所以f應(yīng)該 = 2 并且fibonacci(3)應(yīng)該給我 2 作為輸出。但是我得到的輸出仍然是1。錯(cuò)誤在哪里?
1 回答
縹緲止盈
TA貢獻(xiàn)2041條經(jīng)驗(yàn) 獲得超4個(gè)贊
錯(cuò)誤在你的if條款中。你的意思大概是這樣的:
if x == 1 or x == 2:
一如既往if 2的“真實(shí)”,所以對(duì)于任何x你都會(huì)得到1。
然而,這仍然是錯(cuò)誤的,因?yàn)樵陟巢瞧鯏?shù)列中,前兩個(gè)數(shù)字是0和1,所以:
if x <= 1: return x
添加回答
舉報(bào)
0/150
提交
取消
