看板 Ruby 關於我們 聯絡資訊
def fibonacci(number) if number < 2 number else fibonacci(number - 1) + fibonacci(number - 2) end end puts fibonacci(6) 以上是小弟練習題,執行結果是8 我對上面的流程有一點不懂我知道執行的流程圖是這樣 http://imgur.com/xiSkcjB 至於第一個if條件是小於2的話 加總?或是計算數量? 因為我如果改成<=2結果是13如果算數量2和1的總數是13沒錯 但如果我2改成3結果卻還是13,為什麼呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.175.59.211 ※ 文章網址: http://www.ptt.cc/bbs/Ruby/M.1399091310.A.D15.html
mars90226:你弄錯了,小於二只是因為fibonacci的第0項是0、第1項是 05/03 13:03
mars90226:1而以,沒有其他意義。這只是要讓遞迴有終止條件 05/03 13:04
mars90226:但是fibonacci第2項是1才對 05/03 13:04
謝謝您的回覆,第0項指的是fibonacci(0)是第0項嗎?所以他計算的是第1項? 但是fibonacci第2項是1又是什麼意思呢?不好意思這部分真的讓我很搞不清楚 ※ 編輯: timeregorge (1.175.59.211), 05/03/2014 13:21:19
mars90226:fibonacci數列:1,1,2,3,5,8,13,21 ... 05/03 17:11
mars90226:每一項都是前面兩項的和,最一開始兩項是1 05/03 17:11
mars90226:這只是這個數列的定義而已 05/03 17:12
timeregorge:謝謝您的解答,我知道fibonacci是這樣運作,我只是不懂 05/07 12:09
timeregorge:if 條件式執行後給出來的結果為什麼是這樣,謝謝您 05/07 12:10
timeregorge:不好意思,經過畫圖後..我看懂了謝謝您的解說! 05/07 13:13