作者terrykyo (T.K.O)
看板Grad-ProbAsk
标题Re: [理工] [资结] 递回程式
时间Tue Dec 15 19:21:58 2009
※ 引述《j4ce (empty)》之铭言:
: void xbox(int n,char x,char y,char z)
: {
: if(n>0)
: {
: printf("n=%d ,%c %c %c\n",n,x,y,z);
: box(n-1,x,z,y);
: box(n-1,y,x,z);
: }
: }
: 给予xbox(3,'A','B','C') OUTPUT为何?
: 答案是:
xbox(n,x,y,z): n=3 ABC
box(n-1,x,z,y);: n=2 ACB
box(n-2,x,y,z): n=1 ABC
box(n-2,z,x,y): n=1 CAB <==想知道为何到这里以下还会跑下去?
n再减3就等於0
等於0 if条件式做完
box(n-1,x,z,y)这函式做完
继续做box(n-1,y,x,z)
以下同上面式子
box(n-1,y,x,z);: n=2 BAC
: n=1 BCA
: n=1 ABC
: 我的笨拙想法是:
: 第三步骤时n=1时 又扣了1 再次呼叫时n不是应该=0吗?
: IF判断应该不成立了!
: 希望有人点醒我一下XD
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.123.103.161
※ 编辑: terrykyo 来自: 140.123.103.161 (12/15 19:23)
1F:推 j4ce:我了解了 谢谢你^^ 12/15 19:26