作者ak77now (ak77now)
看板C_Sharp
標題[問題] 請問關於累加的這種語法表示法
時間Sat Apr 9 02:45:16 2016
不好意思我不會上色
想說另外貼個連結上看可能會比較清楚
題目很簡單
就是累加
比如說我輸入5,他就會算1+2+3+4+5,答案是15
用for的語法我比較看得懂
for寫法:
http://pastebin.com/L0zq3Z5a
但這寫法我聽人家解說
聽了又聽、想了又想,想破頭都還不懂
http://pastebin.com/hZ9Um6FF
擷取重點程式碼部份:
public int SumFrom1ToX(int x)
{
if(x==1)
{
return 1;
}
else
{
int result = x + SumFrom1ToX(x - 1);
return result;
}
}
看起來滿短的,
可是他怎麼繞怎麼算的一直都看不懂
比如return 1是要給誰
return result又是給誰
還有x + SumFrom1ToX(x - 1)又是什麼意思等等
懇請大家教教我
拜託拜託
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.254.28.129
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_Sharp/M.1460141120.A.6D6.html
※ 編輯: ak77now (122.254.28.129), 04/09/2016 02:45:39
1F:→ GoalBased: 這個東西叫做遞迴先GOOGLE一下 還不懂再說 04/09 02:58
2F:→ yeo1987: 把自己當電腦一步一步照著跑跑看,很有幫助的。 04/09 22:47
3F:推 evil2004: 經典例子 漢諾塔, 輾轉相除法都會用到這個 04/09 23:15
4F:→ evil2004: 以前用php寫過刪除整個資料夾含子資料夾,也會用到遞迴 04/09 23:16
5F:→ shizeng: SunFrom1ToX(0)紫戌擬虜毽偽戌中壯!!! 04/10 22:24
6F:→ Litfal: 樓上你還是講中文吧,雖然知道你要說什麼 04/11 00:02
7F:推 neo5277: 可是我看不懂樓樓上想說的… 04/11 07:23
8F:→ lucky1lk: RECURSIVE的概念 自己去google吧 04/11 08:08
9F:→ testPtt: 反正遞迴不好懂又耗資源 不會沒差 04/11 11:23
10F:推 Peruheru: 其實我同意樓上,每次進入都要存一次堆疊,大一點就爆了 04/11 11:26
11F:→ Peruheru: 大學時演算法練習用QuickSort,書上教的寫法寫下去就爆 04/11 11:27
12F:→ Peruheru: 後來是找個令一個版本減少遞回深度才做出結果 04/11 11:28
13F:→ Peruheru: 另 04/11 11:29
14F:→ Litfal: shozeng應該是說丟0進去就無窮遞迴了啦 04/11 13:47
15F:→ Litfal: 遞迴用這種鳥東西舉例本來就一點意義都沒有,只是硬教 04/11 13:56
16F:→ Litfal: 至少也要D&C問題如上面提到的排序法或DP問題,才看得出 04/11 14:00
17F:→ Litfal: 遞迴的意義,但這種問題難度比較高,不太適合初學者。 04/11 14:00
18F:推 neo5277: 我覺得遞回拿來可變動的目錄樹很方便就是了 04/11 14:08
20F:推 tobedesigner: 建議你可以手寫一次過程你就會大致了解它是如何運作 04/11 14:20