#include <stdio.h>
void hanoi(int n, char A, char B, char C)
{
if (1 == n)
{
printf("将编号为%d的盘子,从柱子%c移动到柱子%c\n", n, A, C); //盘子编号从1开始,从上到下递增!!
}
else
{
hanoi(n - 1, A, C, B); //将前n - 1个盘子:从A柱子,借助C柱子,移动到B柱子上面
printf("将编号为%d的盘子,从柱子%c移动到柱子%c\n", n, A, C); //盘子编号从1开始,从上到下递增!!
hanoi(n - 1, B, A, C); //将前n - 1个盘子:从B柱子,借助A柱子,移动到C柱子上面
}
}
int main(void)
{
int n; //用于记录盘子数
printf("请输入汉诺塔的层数n = ");
scanf("%d", &n);
hanoi(n, 'A', 'B', 'C'); //调用汉诺塔移动方式表, 参数为(总盘子数,第一根柱子的名称, 第二根柱子的名称, 第三根柱子的名称)
return 0;
羊羊羊-------制作
特注:各位朋友参考为准,自己学会如何写才是初衷!
}
汉诺塔(注释详细)
最新推荐文章于 2022-11-25 14:48:25 发布