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

看板C_and_CPP (C/C++)作者 (阿梁)時間16年前 (2009/02/10 23:36), 編輯推噓3(302)
留言5則, 4人參與, 最新討論串1/4 (看更多)
題目是 1+(1+2)+(1+2+3)+....+(1+2+3+...10) 迴圈解法如下: for(i=1;i<=10;i++) for(j=1;j<=i;j++) sum+=j; 但是請問遞迴解法該如何下手呢? 畢竟 a1=1 a2=1+(1+2) 差1+2 a3=1+(1+2)+(1+2+3) 差1+2+3 若是函式內有迴圈也可稱為遞迴嗎 例如 calling recur(10); recur(int i) { int sum; if(i= =1) return 1; else { sum=0; for(j=1;j<=i;j++) sum+=j; return sum+(i-1); } 請問這樣的解法也稱為遞迴嗎? -- We are what we want to be !!!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.62.0.67

02/10 23:38, , 1F
不算, 遞迴要 call 自己
02/10 23:38, 1F

02/10 23:39, , 2F
間接遞迴也是可以啦 反正就是要call回自己
02/10 23:39, 2F

02/10 23:39, , 3F
抱歉最後一行應該是 sum+recur(i-1);
02/10 23:39, 3F

02/11 00:58, , 4F
雙遞迴解呢?
02/11 00:58, 4F

02/11 01:13, , 5F
嗯 改成 sum+recur(i-1) 應該就沒問題了
02/11 01:13, 5F
文章代碼(AID): #19aPxkJL (C_and_CPP)
文章代碼(AID): #19aPxkJL (C_and_CPP)