#include<stdio.h>
void move(int n,char x, char y)
{
printf("第%d个圆盘%c-->%c\n",n,x,y);
}
int step = 0;
int Hanoi(int n,char a,char b,char c)
{
if( n == 1 )
{
move(n,a,c);
step++;
return step;
}
else
{
Hanoi(n-1,a,c,b);
move(n,a,c);
step++;
Hanoi(n-1,b,a,c);
}
}
int main()
{
char x = 'A';
char y = 'B';
char z = 'C';
int num = 0;
printf("请输入圆盘个数:");
scanf("%d",&num);
printf("以下是移动的过程:\n");
Hanoi(num,x,y,z);
printf("总共移动%d步\n",step);
return 0;
}
汉诺塔(C语言)
最新推荐文章于 2025-12-31 22:40:02 发布
2万+

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



