CSES 2165 - Tower of Hanoi
1.0s 512M河內塔(Tower of Hanoi)遊戲由三根柱子(左、中、右)和 \(n\) 個大小不同的圓盤組成。最初,所有圓盤都在左邊的柱子上,由下而上由大到小排列。
目標是將所有圓盤搬到右邊的柱子上。在每一步中,你可以搬動最上面的一個圓盤到任意一根柱子上,但不能將較大的圓盤放在較小的圓盤之上。
你的任務是找出完成遊戲所需的最少步驟數。
輸入格式
輸入只有一行,包含一個整數 \(n\):圓盤的數量。
輸出格式
第一行輸出一個整數 \(k\):最少的搬動步驟數。
接下來輸出 \(k\) 行,每行包含兩個整數 \(a\) 和 \(b\),表示將最上面的圓盤從柱子 \(a\) 搬到柱子 \(b\)。柱子的編號為 \(1\)(左)、\(2\)(中)、\(3\)(右)。
範例輸入 1
2
範例輸出 1
3
1 2
1 3
2 3
限制
- \(1 \le n \le 16\)
題目來源
題目來自 CSES Problem Set(Antti Laaksonen),授權 CC BY-NC-SA 4.0;本頁為翻譯,以相同授權分享。
登入後即可撰寫程式並提交評測。
登入