递归步骤:
- 将n-1个盘子,从A杆,经C杆,移动到B杆
- 将A杆上的第n个盘子,移动到C杆
- 将n-1个盘子,从B杆,移动到C杆
详细代码:
/*
Hanoi Tower
*/
#include <stdio.h>
#include <stdlib.h>
/* 函数声明 */
int move(int n, char x, char y, char z);
main()
{
int h;
printf("输入盘子个数:");
scanf("%d",&h);
printf("移动%2d 个盘子的步骤如下: \n",h);
move(h,'a','b','c');
system("pause");
}
move(int n, char x, char y, char z)
{
if(n == 1)
printf("%c-->%c\n",x,z);
else
{
move(n-1,x,z,y);
printf("%c-->%c\n",x,z);
move(n-1,y,x,z);
}
}