The Hanoi Tower
Description
“Hanoi Tower”問題的背景和搬移規(guī)則大家是否都很熟悉了?為了突出重點(diǎn),我把問題描述放在下面的HINT部分,不了解的同學(xué)可以參考。
首先我們Hanoi塔上的盤子按從上到下編號,假設(shè)Hanoi塔上有n個(gè)盤子,那么最小的那個(gè)盤子就是1號盤子,然后是2號、3號……最大的盤子是n號。
Hanoi塔的3根針我們也進(jìn)行編號,最左邊的是1號,中間的是2號,最右邊的是3號。
如果我們想把n=2個(gè)盤子從1號針搬到2號針,那么3號針作為暫存使用。整個(gè)搬移過程是這樣的:
1號盤子:從1號針搬到3號針
2號盤子:從1號針搬到2號針
1號盤子:從3號針搬到2號針
你的任務(wù)是編個(gè)程序把上面的搬移過程輸出來,程序需要輸入盤子的個(gè)數(shù)n,并且這n個(gè)盤子一開始在哪根針,要搬到哪根針都是從輸入得到的。
Input
輸入為多行,至EOF結(jié)束。
每行輸入四個(gè)整數(shù),第一個(gè)整數(shù)為盤子數(shù)n(1<=n<=10),后面的三個(gè)整數(shù)是三根針的編號,它們排列的順序是有不同含義的:第二個(gè)整數(shù)是n個(gè)盤子一開始的位置,第四個(gè)整數(shù)是盤子最終要放置的位置,第三個(gè)整數(shù)是搬移過程中用來暫存盤子的。
如:
輸入“1 2 3 1”表示只有一個(gè)盤子,從第2根針搬到第1跟針上。
Output
每一行輸入都對應(yīng)一個(gè)搬移過程,首先輸出一個(gè)“case i”,表示對應(yīng)的第i個(gè)輸入。然后再它后面輸出搬移的步驟。如:
輸入“1 2 3 1”表示只有一個(gè)盤子,從第2根針搬到第1跟針上。那么它的搬移步驟只有一步&
總結(jié)
以上是生活随笔為你收集整理的The Hanoi Tower的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 贴吧上的图片要怎么批量保存到电脑中
- 下一篇: zEngine