HDOJ 1995 漢諾塔V
Problem Description
用1,2,…,n表示n個(gè)盤子,稱為1號(hào)盤,2號(hào)盤,…。號(hào)數(shù)大盤子就大。經(jīng)典的漢諾塔問(wèn)
題經(jīng)常作為一個(gè)遞歸的經(jīng)典例題存在。可能有人并不知道漢諾塔問(wèn)題的典故。漢諾塔來(lái)源于
印度傳說(shuō)的一個(gè)故事,上帝創(chuàng)造世界時(shí)作了三根金剛石柱子,在一根柱子上從下往上按大小
順序摞著64片黃金圓盤。上帝命令婆羅門把圓盤從下面開始按大小順序重新擺放在另一根柱
子上。并且規(guī)定,在小圓盤上不能放大圓盤,在三根柱子之間一回只能移動(dòng)一個(gè)圓盤。我們
知道最少需要移動(dòng)2^64-1次.在移動(dòng)過(guò)程中發(fā)現(xiàn),有的圓盤移動(dòng)次數(shù)多,有的少 。 告之盤
子總數(shù)和盤號(hào),計(jì)算該盤子的移動(dòng)次數(shù).
Input
包含多組數(shù)據(jù),首先輸入T,表示有T組數(shù)據(jù).每個(gè)數(shù)據(jù)一行,是盤子的數(shù)目N(1<=N<=60)和盤
號(hào)k(1<=k<=N)。
Output
對(duì)于每組數(shù)據(jù),輸出一個(gè)數(shù),到達(dá)目標(biāo)時(shí)k號(hào)盤需要的最少移動(dòng)數(shù)。
Sample Input
2
60 1
3 1
Sample Output
576460752303423488
4
比較水的一個(gè)題,推出公式就可以了。
到達(dá)目標(biāo)時(shí)k號(hào)盤需要的最少移動(dòng)數(shù)=N的(K-1)次方;
因?yàn)榧偃缬?0個(gè)盤子;
則編號(hào)為60的盤子肯定只要移動(dòng)1次;
59 ——pow(2,1)次;
58——pow(2,2)次;
。。。
1—— pow(2,60-1)次;
所以推導(dǎo)通項(xiàng)公式:
n個(gè)盤子,編號(hào)為k的盤子的移動(dòng)次數(shù)=pow(2,n-k);
還有注意輸出要用long long型的
#include
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。