給定a,b,c三根足夠長的細柱,在a柱上放有2n個中間有孔的圓盤,共有n個不同的尺寸,每個尺寸都有兩個相同的圓盤,注意這兩個圓盤是不加區分的。現要將這些圓盤移到c柱上,在移動過程中可放在b柱上暫存。要求:
(1)每次只能移動乙個圓盤;
(2) a、b、c三根細柱上的圓盤都要保持上小下大的順序;
任務:設an為2n個圓盤完成上述任務所需的最少移動次數,對於輸入的n,輸出an。
輸入為乙個正整數n,表示在a柱上放有2n個圓盤。
輸出檔案hanoi.out僅一行,包含乙個正整數,為完成上述任務所需的最少移動次數an12
261s通過手推的方式可以發現轉移方程f[i]=2*f[i-1]+2,由於n<=200,所以要用高精
**#include #include using namespace std;
int n,c,a[22],i,j;
int main()
} i=20;
while(i>1&&!a[i])
i--;
cout<
vijos P1354 Hanoi雙塔問題
題意 求n個碟子在三柱漢諾塔上的移動次數。思路 公式 移動次數 2 碟子數 1 注意點 n在1 200範圍內,用大數問題處理。以下為ac 評測狀態 accepted 題目p1354 hanoi雙塔問題 遞交時間 2014 11 07 12 58 47 語言 c 評測機 上海紅茶館 消耗時間 45 m...
雙色Hanoi塔問題
設a,b,c是3個塔座。開始時,在塔座a上有一疊共n個圓盤,這些圓盤自下而上,由大到小地疊在一起。各圓盤從小到大編號為1,2,n,奇數號圓盤著藍色,偶數號圓盤著紅色。現要求將塔座a上的這一疊圓盤移到塔座b上,並仍按同樣順序疊置。在移動圓盤時應遵守以下移動規則 規則 1 每次只能移動1個圓盤 規則 2...
雙色Hanoi塔問題
雙色hanoi塔問題 問題描述 設a b c是3 個塔座。開始時,在塔座a 上有一疊共n 個圓盤,這些圓盤自下而上,由大到小地疊在一起。各圓盤從小到大編號為1,2,n,奇數號圓盤著藍色,偶數號圓盤著紅色,如圖所示。現要求將塔座a 上的這一疊圓盤移到塔座b 上,並仍按同樣順序疊置。在移動圓盤時應遵守以...