/*汉诺塔问题*/
#include <stdio.h>
void hanoi(int n,char a,char b,char c);
void move(int n,char a,char b);
int main(void)
{
int N;
printf("请输入初始圆盘数:\n");
scanf("%d",&N);
printf("需要的步骤为:\n");
hanoi(N,'A','B','C');
return 0;
}
void hanoi(int n,char a,char b,char c)
{
if(n==1) move(n,a,b);
else
{
hanoi(n-1,a,c,b);//数学归纳法思想,把上面N-1个圆盘看成整体
move(n,a,b);
hanoi(n-1,c,b,a);
}
}
void move(int n,char a,char b)
{
printf("把第%d号圆环从%c移到%c\n",n,a,b);
}
用C做 汉诺塔问题(递归)
最新推荐文章于 2024-01-03 21:29:31 发布