作者:手机用户2602930681 | 来源:互联网 | 2023-05-17 15:45
递归是一个抽象的过程,不关注具体的过程!!!
递归实现汉诺塔问题;
#include
int count = 0;
void Move(int n,char a,char b);
void Hanoi(int n,char a,char b,char c);
int main()
{
int n = 0;
printf("请输入汉诺塔层数:");
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,c);
}
else{
Hanoi(n - 1,a,c,b);
Move(n,a,c);
Hanoi(n - 1,b,a,c);
}
}
void Move(int n,char a,char b)
{
count++;
printf("第 %d 次移动 %d 层 %c 到 %c\n",count,n,a,b);
}