作者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/cn.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