代码
#include "iostream"
using namespace std;
/*
将 n 个盘子从 x 借助 y 移动到 z
*/
void move(int n, char x, char y, char z)
{
if (1 == n)
{
printf("%c---->%c\n", x, z);
}
else
{
move(n - 1, x, z, y); // 将 n-1 个盘子从 x 借助 z 移动到 y 上
printf("%c---->%c\n", x, z); // 将第 n 个盘子从 x 移到 z 上
move(n - 1, y, x, z); // 将 n-1 个盘子从 y 借助 x 移动到 z 上
}
}
void main()
{
int n, count;
printf("请输入汉诺塔的层数:");
cin >> n;
cout << "移动的步骤如下所示:" << endl;
move(n, 'X', 'Y', 'Z');
system("pause");
}