ACM1996

/*

汉诺塔VI

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 1080    Accepted Submission(s): 761


Problem Description
n个盘子的汉诺塔问题的最少移动次数是2^n-1,即在移动过程中会产生2^n个系列。由于
发生错移产生的系列就增加了,这种错误是放错了柱子,并不会把大盘放到小盘上,即各柱
子从下往上的大小仍保持如下关系 :
n=m+p+q 
a1>a2>...>am
b1>b2>...>bp
c1>c2>...>cq
计算所有会产生的系列总数.
 

 

Input
包含多组数据,首先输入T,表示有T组数据.每个数据一行,是盘子的数
目N<30.
 

 

Output
对于每组数据,输出移动过程中所有会产生的系列总数。
 

 

Sample Input
3
1
3
29
 
Sample Output
3
27
68630377364883

 

*/

#include<iostream>
#include<cmath>
int main()
{
using namespace std;
unsigned t,n;
unsigned long long result;
cin>>t;
while(t--)
{
cin>>n;
cout<<(unsigned long long)pow(3,n)<<endl;
}
return 0;
}
/*#include <stdio.h>
#include <math.h>
int main()
{
int t,n;
scanf("%d",&t);
while(t-- && scanf("%d",&n))
printf("%I64d\n",(__int64)pow(3.0,n));
return 0;
}*/

posted @ 2013-07-08 16:41  退之  阅读(240)  评论(0编辑  收藏  举报