递归之汉诺塔问题

问题描述:有三个塔座,A塔座有n大小不同的盘子,B,C塔座为空。
       要A塔上的盘子按原状借助C塔移到B塔,每次移动一个盘子,且在移
       动过程中,小盘子不能置于大盘子之下

代码如下:

 1 # include<stdio.h>
 2 int n;
 3 char a='A',b='B',c='C';
 4 void Hano(int,char,char,char);
 5 int main()
 6 {
 7     scanf("%d",&n);
 8     Hano(n,a,b,c);
 9     return 0;
10 }
11 
12 void Hano(int x,char a,char b,char c)
13 {
14     if(x==1) printf("%c--%c\n",a,b);
15     else
16     {
17         Hano(x-1,a,c,b);
18         printf("%c--%c\n",a,b);
19         Hano(x-1,c,b,a);
20     }
21 }

猜你喜欢

转载自www.cnblogs.com/bboykaku/p/12435896.html