hdu 1207 汉诺塔
#include<stdio.h>
#include<math.h>
#define M 99999999
void main()
{
int i,n,x,min,f[100];
f[1]=1;
f[2]=3;
for(i=3;i<=65;i++)
{
min=M;
for(x=1;x<i;x++)
if(2*f[x]+pow(2,i-x)-1<min)
min=2*f[x]+(int)pow(2,i-x)-1;
f[i]=min;
}
while(scanf("%d",&n)!=EOF)
printf("%d\n",f[n]);
}