漢諾塔ii
problem description
經典的漢諾塔問題經常作為乙個遞迴的經典例題存在。可能有人並不知道漢諾塔問題的典故。漢諾塔**於印度傳說的乙個故事,上帝創造世界時作了三根金剛石柱子,在一根柱子上從下往上按大小順序摞著64片**圓盤。上帝命令婆羅門把圓盤從下面開始按大小順序重新擺放在另一根柱子上。並且規定,在小圓盤上不能放大圓盤,在三根柱子之間一回只能移動乙個圓盤。有預言說,這件事完成時宇宙會在一瞬間閃電式毀滅。也有人相信婆羅門至今仍在一刻不停地搬動著圓盤。恩,當然這個傳說並不可信,如今漢諾塔更多的是作為乙個玩具存在。gardon就收到了乙個漢諾塔玩具作為生日禮物。
gardon是個怕麻煩的人(恩,就是愛偷懶的人),很顯然將64個圓盤逐一搬動直到所有的盤子都到達第三個柱子上很困難,所以gardon決定作個小弊,他又找來了一根一模一樣的柱子,通過這個柱子來更快的把所有的盤子移到第三個柱子上。下面的問題就是:當gardon在一次遊戲中使用了n個盤子時,他需要多少次移動才能把他們都移到第三個柱子上?很顯然,在沒有第四個柱子時,問題的解是2^n-1,但現在有了這個柱子的幫助,又該是多少呢?
input
包含多組資料,每個資料一行,是盤子的數目n(1<=n<=64)。
output
對於每組資料,輸出乙個數,到達目標需要的最少的移動數。
sample input
1 3
12sample output
1 5
81杭電題就是不錯~~~經典的漢諾諾問題~~~**如下:
#include
#include
#include
using
namespace
std;
__int64 hanoi[66]=;
int main()
hanoi[64]=18433;
int n;
while(~scanf("%d",&n))
printf("%i64d\n",hanoi[n]);
return
0;
}
杭電1207 漢諾塔II
經典的漢諾塔問題經常作為乙個遞迴的經典例題存在。可能有人並不知道漢諾塔問題的典故。漢諾塔 於印度傳說的乙個故事,上帝創造世界時作了三根金剛石柱子,在一根柱子上從下往上按大小順序摞著64片 圓盤。上帝命令婆羅門把圓盤從下面開始按大小順序重新擺放在另一根柱子上。並且規定,在小圓盤上不能放大圓盤,在三根柱...
杭電OJ 1207 漢諾塔II
雖然本題只是在原來的漢諾塔的基礎上增加了乙個柱子,但是不能根據先將上面的n 2個圓盤通過c和d移動到b上,然後再將第n 1個盤子移動到c上,接著講最後乙個圓盤移動到d上 假設d是最終的位置 最後將上面的n 2個圓盤通過a c移動到d上,所以一共需要f n 2 f n 2 3步 當n 6時情況確實是這...
hdoj1207 漢諾塔II 多柱漢諾塔問題
題目鏈結 思路 首先這是個多柱漢諾塔問題,對於n階漢諾塔,具體步驟如下 1.首先我們將x個盤子移到b柱,步數為step x 2.然後將n x個盤子移到c柱,步數為2 n x 1 3.最後我們再將b柱上的x個盤子移到c柱,步數為step x 4.上面的x在1到n之間取值,對於每乙個x,我們可以求出乙個...