[理工] [資結]-遞回程式
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為何?
答案是:
n=3 ABC
n=2 ACB
n=1 ABC
n=1 CAB <==想知道為何到這裡以下還會跑下去?
n=2 BAC
n=1 BCA
n=1 ABC
我的笨拙想法是:
第三步驟時n=1時 又扣了1 再次呼叫時n不是應該=0嗎?
IF判斷應該不成立了!
希望有人點醒我一下XD
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.205.42.65
推
12/15 19:12, , 1F
12/15 19:12, 1F
→
12/15 19:13, , 2F
12/15 19:13, 2F
→
12/15 19:13, , 3F
12/15 19:13, 3F
推
12/15 19:16, , 4F
12/15 19:16, 4F
→
12/15 19:16, , 5F
12/15 19:16, 5F
→
12/15 19:17, , 6F
12/15 19:17, 6F
→
12/15 19:18, , 7F
12/15 19:18, 7F
→
12/15 19:19, , 8F
12/15 19:19, 8F
推
12/15 19:25, , 9F
12/15 19:25, 9F
→
12/15 19:25, , 10F
12/15 19:25, 10F
→
12/15 19:27, , 11F
12/15 19:27, 11F
→
12/15 19:28, , 12F
12/15 19:28, 12F
→
12/15 19:29, , 13F
12/15 19:29, 13F
討論串 (同標題文章)