看板 Grad-ProbAsk 關於我們 聯絡資訊
The following recursive program segment is written in C language. Write the output if it is called with the instruction xbox (3, ‘A’, ‘B’, ‘C’). void xbox (int n, char x, char y, char z) { if (n > 0 ) { printf(“%c %c %c \n”, x, y, z); xbox (n-1 , x, z, y); xbox (n-1 , y, x, z); } } 解: n = 3 A B C n = 2 A C B n = 1 A B C n = 1 C A B n = 2 B A C n =1 B C A n =1 A B C ---------------- 剛碰演算法,有點不太懂這如何做出來的 n = 3 A B C n = 2 A C B ←到這裡都還懂 下面就想破頭也想不出道理... -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.169.76.122 ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1534181778.A.BA3.html ※ 編輯: rex51920594 (1.169.76.122), 08/14/2018 01:37:53
seika555: https://imgur.com/UzzdWcv.jpg 08/14 02:13
seika555: 一圈一圈遞迴下去想比較好想 08/14 02:14
謝謝你還畫圖,這樣就很清楚了
hacocu831735: 請問為什麼n=0時不會繼續遞迴?不就只是不會印出東 08/14 04:16
hacocu831735: 西而已嗎? 08/14 04:16
goldstorm: n=0不會進入if (n > 0)的條件裡 08/14 09:54
seika555: 因為不會進到if裡面 所以不會印出東西 就不會再遞迴下去 08/14 09:57
seika555: 了吧 08/14 09:57
hacocu831735: 感謝…沒看清楚括號 08/14 10:09
※ 編輯: rex51920594 (1.169.76.122), 08/14/2018 20:12:59