河內塔

發布時間: Jan. 6, 2021, 2:38 a.m.   最後更新時間: Oct. 24, 2021, 8:12 p.m.   時間限制: 1000ms   記憶體限制: 128M

有三根柱子A, B, C

A柱子有n個圓盤,分別編號為1~n,由大到小(1最小n最大,1在最上面)

請把A柱子上的圓盤都放到C柱子上

你每次可以移動任意柱子最上面的一個圓盤到其他柱子的最上面

但必須滿足每根柱子上的圓盤都是由大到小排好的

且操作次數要最小

輸入一個正整數$n(1\le n\le 10)$

對於每個移動操作,請輸出以下格式:
"move {i}-th plate from {FromePlate} to {ToPlate}."
代表將第{i}個圓盤從{FromePlate}跟柱子移動到{ToPlate}跟柱子。
輸出不含雙引號

複製範例
1
move 1-th plate from A to C.
複製範例
2
move 1-th plate from A to B.
move 2-th plate from A to C.
move 1-th plate from B to C.
複製範例
3
move 1-th plate from A to C.
move 2-th plate from A to B.
move 1-th plate from C to B.
move 3-th plate from A to C.
move 1-th plate from B to A.
move 2-th plate from B to C.
move 1-th plate from A to C.

記得輸出格是要對喔!

recursion

原創