#include<stdio.h>
void move(char x, int n, char z)
{
printf("将编号为%d的圆盘从%c塔搬至%c塔\n", n, x, z);
}
void move(char x, int n, char z)
{
printf("将编号为%d的圆盘从%c塔搬至%c塔\n", n, x, z);
}
//将编号为1-n的圆盘从x塔搬至z塔,y为辅助塔
void hanoi(int n, char x, char y, char z)
{
if (n == 1)
{
move(x, 1, z);
return;
}
else
{
hanoi(n - 1, x, z, y);//将编号为1到n-1的圆盘从x塔先移至y塔,z塔作为辅助塔;
move(x,n,z);
hanoi(n - 1,y,x,z);//将编号为1到n-1的圆盘从y塔移至z塔,x塔作为辅助塔
}
}
void hanoi(int n, char x, char y, char z)
{
if (n == 1)
{
move(x, 1, z);
return;
}
else
{
hanoi(n - 1, x, z, y);//将编号为1到n-1的圆盘从x塔先移至y塔,z塔作为辅助塔;
move(x,n,z);
hanoi(n - 1,y,x,z);//将编号为1到n-1的圆盘从y塔移至z塔,x塔作为辅助塔
}
}
void main()
{
int n=2;
char x = 'x';
char y = 'y';
char z = 'z';
hanoi(n, x, y, z);
}
{
int n=2;
char x = 'x';
char y = 'y';
char z = 'z';
hanoi(n, x, y, z);
}