作者nedbob (狗腿)
看板C_and_CPP
標題Re: [問題] 請教一個題目的遞迴解法
時間Wed Feb 11 03:05:54 2009
※ 引述《cowbbb (阿梁)》之銘言:
: 題目是 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);
: }
: 請問這樣的解法也稱為遞迴嗎?
int recur(int i)
{
if( i = = 1 )
return 1;
else
return recur(i-1) + sum(i);
}
int sum(int i)
{
if( i = = 1 )
return 1;
else
return i + sum(i-1);
}
沒有迴圈 = =|||
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.135.42.249
→ adrianshum:奇怪.. 為什麼連續兩篇都把 == 寫成 = =? 看起來好怪 02/11 14:22
推 ledia:= = compile 不會過吧? 02/11 14:29
→ nedbob:只是單純在BBS上看不出來 == 是兩個 = 02/11 18:31