description
給定a、b、c三根足夠長的細柱,在a柱上放有2n個中間有孔的圓盤,共有n個不同的尺寸,每個尺寸都有兩個相同的圓盤,注意這兩個圓盤是不加區分的。現要將這些圓盤移到c柱上,在移動過程中可放在b柱上暫存。要求:
(1)每次只能移動乙個圓盤;
(2)a、b、c三根細柱上的圓盤都要保持上小下大的順序;
任務:設an為2n個圓盤完成上述任務所需的最少移動次數,對於輸入的n,輸出an。
input
一組測試資料佔一行,包括乙個正整數n,表示在a柱上放有2n個圓盤。1<=n<=200個正整數n,表示在a柱上放有2n個圓盤。
output
一組測試資料輸出佔一行,包含乙個正整數, 為完成上述任務所需的最少移動次數an。
sample input
1
2
sample output
2
6
思路
n = 1; 需要兩步;
n = 2; 先將最小的兩個移到b,需要兩步,再將最大的兩個移到c;需要兩步,然後將b上面的兩個移到c,需要兩步;總共移到了6步,最小的移到兩次每次需要兩步,最大的需要一次,每次一步,2*2+2;
n >= 3;先將上面的n-1對圓盤移到b上面,然後將最大的一對移到c上面,以此類推,f[n] = 2*f[n-1] + 2;
**
#include
#include
using
namespace
std;
int main()
int len=1;
n--;
while(n--)
a[len]+=x;
if(a[len])
len++;
}for(int i=len-1;i>=0;i--)
cout
0;}
easy高精度 Hanoi雙塔問題
題目描述 給定a b c三根足夠長的細柱,在a柱上放有2n個中間有孔的圓盤,共有n個不同的尺寸,每個尺寸都有兩個相同的圓盤,注意這兩個圓盤是不加區分的 下圖為n 3的情形 現要將這些圓盤移到c柱上,在移動過程中可放在b柱上暫存。要求 1 每次只能移動乙個圓盤 2 a b c三根細柱上的圓盤都要保持上...
高精度 P1096 Hanoi 雙塔問題
題目描述 給定a b c三根足夠長的細柱,在a柱上放有2n個中間有孔的圓盤,共有n個不同的尺寸,每個尺寸都有兩個相同的圓盤,注意這兩個圓盤是不加區分的 下圖為n 3的情形 現要將這些圓盤移到c柱上,在移動過程中可放在b柱上暫存。要求 1 每次只能移動乙個圓盤 2 a b c三根細柱上的圓盤都要保持上...
題解 Hanoi雙塔問題(高精度處理,壓4用20)
題目描述 給定a,b,c三根足夠長的細柱,在a柱上放有2n個中間有空的圓盤,共有n個不同的尺寸,每個尺寸都有兩個相同的圓盤,注意這兩個圓盤是不加區分的 下圖為n 3的情形 現要將 這些國盤移到c柱上,在移動過程中可放在b柱上暫存。要求 提交 1 每次只能移動乙個圓盤 2 a b c三根細柱上的圓盤都...