[问题] 请问关于累加的这种语法表示法

楼主: 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