汉诺塔问题
Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other)
Total Submission(s) : 54 Accepted Submission(s) : 12
Font: Times New Roman | Verdana | Georgia
Font Size: ← →
Problem Description
汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。
不过现在有2*n个圆盘,柱子还是三根,圆盘有n种不同的尺寸,每一种尺寸的圆盘有两个,如通常那样,在第一根柱子上从下往上按照大小顺序摞着2*n个圆盘。要求每次只能移动一个圆盘,且不能把较大的圆盘放在较小的上面,显然,圆盘可以放在同样大的圆盘上面。如果相同尺寸的圆盘是相互不可区分的,要把一个双重塔从第一根桩柱移动到第三根桩柱最少需要移动多少次?如下图,为n=3时,即第一根柱子上有2*3个圆盘的初始状态。本图片由小KD友情提供!
不过现在有2*n个圆盘,柱子还是三根,圆盘有n种不同的尺寸,每一种尺寸的圆盘有两个,如通常那样,在第一根柱子上从下往上按照大小顺序摞着2*n个圆盘。要求每次只能移动一个圆盘,且不能把较大的圆盘放在较小的上面,显然,圆盘可以放在同样大的圆盘上面。如果相同尺寸的圆盘是相互不可区分的,要把一个双重塔从第一根桩柱移动到第三根桩柱最少需要移动多少次?如下图,为n=3时,即第一根柱子上有2*3个圆盘的初始状态。本图片由小KD友情提供!
Input
第一行是一个整数T,表示有T组测试数据
每组测试数据有一个正整数n(1<=n<=60),表示有2*n个圆盘。
每组测试数据有一个正整数n(1<=n<=60),表示有2*n个圆盘。
Output
对于每组输入数据,输出最少要移动的次数。
Sample Input
2 1 2
Sample Output
2 6