#include<stdio.h>
void move(int n, char x, char y, char z)
{ //将n个盘子放到z上
if (n == 1)
{
printf("%c-->%c\n", x, z);
}
else
{
move(n - 1, x, z, y);//将n-1个盘子借助z移到y上 (中间的也是借助的 ,也可以选择最右边的z为借助平台)
printf("%c-->%c\n", x, z);//将第n个盘子移到z上
move(n - 1, y, x, z);//将n-1个盘子从y上借助x移到z上,这步其实就是上面的递归循环
}
}
int main()
{
int n;
scanf("%d", &n);
move(n, 'x', 'y', 'z');
}
汉诺塔小游戏程序(递归算法)
最新推荐文章于 2023-07-18 17:15:00 发布