[問題] 關於遞迴函數的問題

看板C_and_CPP作者 (球球)時間14年前 (2010/04/26 12:59), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串1/1
有一遞迴函數如下: int g(int n) { if(n<3) return n; else return f(n-3)+f(n-2)+f(n-1); } 問: 1.以f(9)叫用之,將回傳值多少? 2.令函數g(n)為計算f(n)時需呼叫f(0)的次數, 試寫出g(n)的遞迴關係(recurrence relation). 3.函數g(9)的值為何? 解: 1.125 2.g(n)=g(n-1)+g(n-2)+g(n-3),g(0)=g(1)=g(2)=1. 3.105次 -------------------------------------------------- 請問第二小題為什麼g(0)=g(1)=g(2)=1? 如果以解二來看,那我輸入3,g(3)=3. 但是輸入三次的話f(3)=f(2)+f(1)+f(0) f(0)不是才出現一次? 為什麼f(1)跟f(2)也要算一次f(0)? 請高人指點 謝謝!!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.69.59.119

04/26 13:06, , 1F
因為題目錯或是答案錯...
04/26 13:06, 1F

04/26 16:36, , 2F
他應該只是公式吧!?
04/26 16:36, 2F
文章代碼(AID): #1BrHsdl_ (C_and_CPP)