汉诺塔

 1 #include<stdio.h>
 2 void move(int n,char a,char b,char c)
 3 {
 4     if(n==1)
 5         printf("\t%c->%c\n",a,c);    //当n只有1个的时候直接从a移动到c
 6     else
 7     {
 8         move(n-1,a,c,b);            //第n-1个要从a通过c移动到b
 9         printf("\t%c->%c\n",a,c);
10         move(n-1,b,a,c);            //n-1个移动过来之后b变开始盘,b通过a移动到c,这边很难理解
11     }
12 }
13  
14 int main()
15 {
16     int n;
17     printf("请输入要移动的块数:");
18     scanf("%d",&n);
19     move(n,'a','b','c');
20     return 0;
21 }

 

posted @ 2017-10-22 19:28  zcb_bai  阅读(101)  评论(0编辑  收藏  举报