汉诺塔III HDU - 2064
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                汉诺塔III HDU - 2064
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.                        
                                漢諾塔III
HDU - 2064 約19世紀(jì)末,在歐州的商店中出售一種智力玩具,在一塊銅板上有三根桿,最左邊的桿上自上而下、由小到大順序串著由64個圓盤構(gòu)成的塔。目的是將最左邊桿上的盤全部移到右邊的桿上,條件是一次只能移動一個盤,且不允許大盤放在小盤的上面。? ?現(xiàn)在我們改變游戲的玩法,不允許直接從最左(右)邊移到最右(左)邊(每次移動一定是移到中間桿或從中間移出),也不允許大盤放到下盤的上面。??Daisy已經(jīng)做過原來的漢諾塔問題和漢諾塔II,但碰到這個問題時,她想了很久都不能解決,現(xiàn)在請你幫助她?,F(xiàn)在有N個圓盤,她至少多少次移動才能把這些圓盤從最左邊移到最右邊??
Input包含多組數(shù)據(jù),每次輸入一個N值(1<=N=35)。Output對于每組數(shù)據(jù),輸出移動最小的次數(shù)。Sample Input
1 3 12Sample Output
2 26 531440?
?
1 #include<iostream> 2 #include<stdio.h> 3 #include<cstring> 4 #include<queue> 5 6 using namespace std; 7 8 long long F(int num) // 返回值較大時使用long long 9 { 10 if(num == 1) 11 return 2; 12 return 3*F(num-1)+2; 13 } 14 15 int main() 16 { 17 int n; 18 while(scanf("%d", &n) != EOF) 19 { 20 printf("%lld\n", F(n)); 21 } 22 23 24 return 0; 25 }?
轉(zhuǎn)載于:https://www.cnblogs.com/FengZeng666/p/11517347.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的汉诺塔III HDU - 2064的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 公共钥匙盒 ccf
- 下一篇: C++使用stringstream分割字
