Re: [理工] [資結]-遞回程式

看板Grad-ProbAsk作者 (T.K.O)時間14年前 (2009/12/15 19:22), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/3 (看更多)
※ 引述《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)

12/15 19:26, , 1F
我了解了 謝謝你^^
12/15 19:26, 1F
文章代碼(AID): #1B9t5Om4 (Grad-ProbAsk)
文章代碼(AID): #1B9t5Om4 (Grad-ProbAsk)