#include <stdio.h>
void hanno(int, int, int, int);
int i = 0;
main()
{
int n = 3; //修改 n 值 可显示任意盘子数
int from = 1, to = 3, middle = 2;
hanno(n, from, middle, to); //从from上借助middle将n个盘子放在to上
printf("总共需要移动 %d 步!\n", i);
}
void hanno(int n, int from, int middle, int to)
{
if(n > 0) {
i++;
hanno(n - 1, from, to, middle); // 从from上借助to将n–1个盘子放在middle上
printf("%d -> %d\n", from, to); // 将n-1剩下的那个盘子放在to上
hanno(n -1, middle, from, to); //从middle上借助from将n - 1个盘子放往to上
}
}
