#include "stdio.h"
void move(int n,char x,char y,char z);
int main()
{
int n; //n为圆环数目
char a = 'x', b = 'y', c = 'z'; //三根柱子
printf("汉诺塔问题\n");
printf("请输入圆环数目: ");
scanf("%d",&n);
move(n,a,b,c); //把前n个圆环从a借助b移到c
return 0;
}
void move(int n,char x,char y,char z)
{
if(n == 1)
printf("%c->%c ",x,z);
else
{
move(n-1,x,z,y); //把前n-1个圆环从x借助z移到y
printf("%c->%c ",x,z); //把第n个圆环从x移到z
move(n-1,y,x,z); //把y上的n-1个圆环借助x移到z上
}
}
汉诺塔问题(递归)
最新推荐文章于 2020-01-31 19:29:40 发布