c语言 汉诺塔问题
#include<stdio.h>void main()
{
void move(char A,char B,char C,int n);
int n;
scanf("%d",&n);
move('A','B','C',n);
}
void move(char A,char B,char C,int n)
{
if (n==1)
{
printf("A-->C\n");
}
else
{
move(A,C,B,n-1);
move(A,B,C,n);
move(B,A,C,n-1);
}
}
视频还没看,自己想的,跑出来的结果全是A-->C,不明白哪里有问题,有没有大佬帮看一下,十分感谢 https://blog.csdn.net/weixin_42145502/article/details/83686673 逻辑有问题
只有最后的A-->C,没有中间过程的描述,可以看看这篇:
https://fishc.com.cn/thread-116890-1-1.html #include<stdio.h>
void main()
{
void move(char a,char b,char c,int n);
int n;
scanf("%d",&n);
move('A','B','C',n);
}
void move(char a,char b,char c,int n)
{
if (n==1)
{
printf("%c-->%c\n",a,c);
}
else
{
move(a,c,b,n-1);
move(a,b,c,1);
move(b,a,c,n-1);
}
}
这个是修改过后能跑成功的代码,给大家作参考
页:
[1]