|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include<stdio.h>
- void hanoi(int n,char a,char b,char c);
- void main(void)
- {
- int n;
- char a='A',b='B',c='C';
- puts("请输入汉诺塔的层数:");
- scanf("%d",&n);
- hanoi(n,a,b,c);
- }
- void hanoi(int n,char a,char b,char c)
- {
- if(1==n)
- {
- printf("%c-->%c\n",a,c);
- }
- else
- {
- hanoi(n-1,a,c,b);
- printf("%c-->%c\n",a,c);
- hanoi(n-1,b,a,c);
- }
- }
复制代码
如代码,如题目所问。
还有关于汉诺塔的问题,if(1==n)不是表示它只有当层数n为1的时候才能动用吗?为什么下面的else内,又多了一个printf的打印?我清楚它们的功能,也自己推演过,知道大概原理,只求一个更好的理解方式,如果没有,请忽视这个问题。谢谢。 |
|