x,y,z分别为初始塔,辅助塔,目的塔
#include<stdio.h>
int step=1;
void move(int n,char from,char to)
{
printf("第%d步:将%d号盘子%c----->%c\n",step++,n,from,to);
}
void Hanoi(int n,char from,char help,char to)//理解顺序:将n个盘子由初始塔借助辅助塔移动到目的塔
{
if(n==1)
move(1,from,to);//只有一个盘子,直接将盘子从初塔移动到目的塔
else
{
Hanoi(n-1,from,to,help);//将n-1个塔从初始塔移动到辅助塔,借助目的塔
move(n,from,to);//将剩下的一个盘子移动到目的塔
Hanoi(n-1,help,from,to);//将n-1个塔移动到目的塔
}
}
int main()
{
int n;
scanf("%d",&n);
char x='a',y='b',z='c';
Hanoi(n,x,y,z);
return 0;
}