C语言递归之汉诺塔(梵塔)问题
代码区
#include<stdio.h>
void hanoi(int n,char one,char two,char three)//**n个盘子借助two从one到three**
{
void move(char x,char y);//显示过程的函数
if(n==1)
move(one,three);
else
{
hanoi(n-1,one,three,two); //将n-1个盘子借助three,从one移到two;
move(one,three);
hanoi(n-1,two,one,three);//将n-1个盘子借助one,从two移到three;
}
}
void move(char x,char y)
{
printf("%C->%c\n",x,y);
}
main()
{
int n;
printf("input the numbers of disks\n");
scanf("%d",&n);
printf("the steps to move n disks\n");
hanoi(n,'A','B','C'); //注意,此处的'必须加
}
测试区

本文介绍如何使用C语言通过递归方法解决经典的汉诺塔问题,包括代码实现和测试案例。
1947

被折叠的 条评论
为什么被折叠?



