汉诺塔移动次数问题:有n个盘子的塔借助另一个塔移动到第三个塔的次数为2^n-1;因为递推关系式为move(n)=2move(n-1)+1; move(0)=0
故此题代码为#include
int res[80];
void calc(int n){
//2^(n+1)
int i,j;
for(i=1;i<=n+1;i++)
{
for(j=0;j<80;j++)
res[j]*=2;
for(j=0;j<80;j++)
if(res[j]>=10)
{
res[j+1]+=(res[j]/10);
res[j]%=10;
}
}
//2^(n+1)-2
for(i=0;i<80;i++)
{
res[i]-=2;
if(res[i]>=0) break;
else res[i]=10+res[i];
}
}
int main()
{
int n,i;
res[0]=1;
scanf("%d",&n);
//计算
calc(n);
//输出
i=80-1;
while(res[i]==