Re: [問題] 請教一個題目的遞迴解法

看板C_and_CPP (C/C++)作者 (Alien)時間16年前 (2009/02/11 14:17), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/4 (看更多)
※ 引述《cismjmgoshr (--???--)》之銘言: : a1=1 : a2=1+(1+2) 差1+2 : a3=1+(1+2)+(1+2+3) 差1+2+3 : 如果把(1+2+3+...)也寫成遞迴 : int recur(int i,int j) : { : if(i==0) : return 0; : else if(j==0) : return recur(i-1,i-1); : else : return j+recur(i,j-1); : } : a_n = recur(n,n); : ....不過這樣寫不會比迴圈解快吧 : 純粹練習用嗎? 其實... T(n) = (n+1)*n/2 + T(n-1) T(1) = 1 這樣不是更簡單嗎?... (本來直接寫了 code, 後來還是覺得不寫出來比較好一點) int foo(int i) { if (i == 0) { return 1; } return (i+1)*i/2 + foo(i-1); } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 202.155.236.82 ※ 編輯: adrianshum 來自: 202.155.236.82 (02/11 14:20)
文章代碼(AID): #19acs5Hf (C_and_CPP)
文章代碼(AID): #19acs5Hf (C_and_CPP)