題組內容

三、下面為一以 C 語言撰寫之副程式,用來解決河內塔(tower of Hanoi)問題。phpqmLohC

⑷上面 tower 副程式中的“if (n==1)”如果改成“if (n==0)”,並且主程式呼叫 tower(8, 'A', 'B', 'C'),請問輸出總共會有多少行?(4 分)

詳解 (共 3 筆)

koien7733
koien7733
詳解 #2903303
2018/07/08
當n=1時 t(1)會呼叫t(0),pr...
(共 266 字,隱藏中)
前往觀看
白龍@菜鳥公務員(107/10/29)
白龍@菜鳥公務員(107/10/29)
詳解 #2848637
2018/06/13
如果將“if (n==1)”如果改成“i...
(共 82 字,隱藏中)
前往觀看
hchungw
hchungw
詳解 #6045869
2024/03/14

如果在副程式中將 if (n==1) 改成 if (n==0) 並且主程式呼叫 tower(8, 'A', 'B', 'C'),輸出的總行數仍然會是 255 行。這是因為在遞迴過程中,當 n 達到 1,就會執行一次打印操作,然後返回。將條件改為 n == 0 不會改變打印操作的次數,只是在 n 為 1 時不再檢查這個條件。因此,遞迴的行為和打印的次數不變。