[理工] 演算法-遞迴

看板Grad-ProbAsk作者 (rex51920594)時間7年前 (2018/08/14 01:36), 7年前編輯推噓5(503)
留言8則, 3人參與, 7年前最新討論串1/2 (看更多)
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

08/14 02:13, 7年前 , 1F

08/14 02:14, 7年前 , 2F
一圈一圈遞迴下去想比較好想
08/14 02:14, 2F
謝謝你還畫圖,這樣就很清楚了

08/14 04:16, 7年前 , 3F
請問為什麼n=0時不會繼續遞迴?不就只是不會印出東
08/14 04:16, 3F

08/14 04:16, 7年前 , 4F
西而已嗎?
08/14 04:16, 4F

08/14 09:54, 7年前 , 5F
n=0不會進入if (n > 0)的條件裡
08/14 09:54, 5F

08/14 09:57, 7年前 , 6F
因為不會進到if裡面 所以不會印出東西 就不會再遞迴下去
08/14 09:57, 6F

08/14 09:57, 7年前 , 7F
了吧
08/14 09:57, 7F

08/14 10:09, 7年前 , 8F
感謝…沒看清楚括號
08/14 10:09, 8F
※ 編輯: rex51920594 (1.169.76.122), 08/14/2018 20:12:59
文章代碼(AID): #1RSS6IkZ (Grad-ProbAsk)
討論串 (同標題文章)
文章代碼(AID): #1RSS6IkZ (Grad-ProbAsk)