[理工] [資結]關於這個遞迴函數

看板Grad-ProbAsk作者 (球球)時間15年前 (2010/04/26 10:37), 編輯推噓0(002)
留言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 17:28, , 1F
是因為if(n<3)的關係吧
04/26 17:28, 1F

04/27 10:14, , 2F
第二題是呼叫f(n)的次嗎?感覺題目怪怪的
04/27 10:14, 2F
文章代碼(AID): #1BrFnfSv (Grad-ProbAsk)