#include<stdio.h>
void move(int n,char a,char b,char c)//这里代表将a柱子上的盘子借助b柱子移动到c柱子
{
if(n==1)//如果是直接将a柱子上的盘子移动到c柱子
printf("\t%c->%c\n",a,c);
else
{
move(n-1,a,c,b);//把a的n-1个盘子通过c移动到b
printf("\t%c->%c\n",a,c);//再把a的最后1个盘子(最大的盘子)移动到c
move(n-1,b,a,c);//然后把b上面的n-1个盘子通过a移动到c
}
}
main()
{
int n;
while(1)
{
printf("请输入汉诺塔层数:\n");
scanf("%d",&n);
printf(“汉诺塔移动的步骤:\n");
move(n,'a','b','c');
}
return 0;
}
习题7.12
最新推荐文章于 2021-05-20 07:18:44 发布