n个圆盘--移动次数2^n-1;
#include<stdio.h>
long count;//记录移动次数
void hanoi(int n,char a,char b,char c)//要将n个从a移到c上,b作为辅助的柱
{
if(n==1)
printf("第%d次,%c-->%c柱\n",++count,a,c);
else
{
hanoi(n-1,a,c,b);//先将n-1个移到辅助柱上
printf("第%d次,%c-->%c柱\n",++count,a,c);
hanoi(n-1,b,a,c);//再将n-1个移回到目标柱上
}
}
int main()
{
int h;
printf("请输入汉诺塔圆盘数:");
scanf("%d",&h);
count=0;
hanoi(h,'A','B','C');
return 0;
}