[問題] 請問關於累加的這種語法表示法

作者: ak77now (ak77now)   2016-04-09 02:45:16
不好意思我不會上色
想說另外貼個連結上看可能會比較清楚
題目很簡單
就是累加
比如說我輸入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)又是什麼意思等等
懇請大家教教我
拜託拜託
作者: GoalBased (Artificail Intelligence)   2016-04-09 02:58:00
這個東西叫做遞迴先GOOGLE一下 還不懂再說
作者: yeo1987 (Archie)   2016-04-09 22:47:00
把自己當電腦一步一步照著跑跑看,很有幫助的。
作者: evil2004 (忘卻深淵)   2016-04-09 23:15:00
經典例子 漢諾塔, 輾轉相除法都會用到這個以前用php寫過刪除整個資料夾含子資料夾,也會用到遞迴
作者: shizeng   2016-04-10 22:24:00
SunFrom1ToX(0)紫戌擬虜毽偽戌中壯!!!
作者: Litfal (Litfal)   2016-04-11 00:02:00
樓上你還是講中文吧,雖然知道你要說什麼
作者: neo5277 (I am an agent of chaos)   2016-04-11 07:23:00
可是我看不懂樓樓上想說的…
作者: lucky1lk (賭到沒錢的人)   2016-04-11 08:08:00
RECURSIVE的概念 自己去google吧
作者: testPtt (測試)   2016-04-11 11:23:00
反正遞迴不好懂又耗資源 不會沒差
作者: Peruheru (還在想)   2016-04-11 11:26:00
其實我同意樓上,每次進入都要存一次堆疊,大一點就爆了大學時演算法練習用QuickSort,書上教的寫法寫下去就爆後來是找個令一個版本減少遞回深度才做出結果另
作者: Litfal (Litfal)   2016-04-11 13:47:00
shozeng應該是說丟0進去就無窮遞迴了啦遞迴用這種鳥東西舉例本來就一點意義都沒有,只是硬教至少也要D&C問題如上面提到的排序法或DP問題,才看得出遞迴的意義,但這種問題難度比較高,不太適合初學者。
作者: neo5277 (I am an agent of chaos)   2016-04-11 14:08:00
我覺得遞回拿來可變動的目錄樹很方便就是了
作者: tobedesigner (亂)   2016-04-11 14:16:00
用別的語法來執行如圖 http://imgur.com/JoMAtal建議你可以手寫一次過程你就會大致了解它是如何運作

Links booklink

Contact Us: admin [ a t ] ucptt.com