FreeFoxCM

运用递归解决hanoi问题
 1/*该程序运用递归的方法解决hanoi问题*/
 2/*编写者:FreeFox*/
 3/***********************************************/
 4#i nclude <stdio.h>
 5
 6int main(void)
 7{
 8 int n;
 9
10 void move(int Nun,char One,char two,char three);/*声明函数原原型/
11  
12 printf("\nPlace input number of diske:");/*获取盘子的总数*/

13 scanf("%d",&n);
14
15 move(n,'A','B','C');/*调用递归函数*/
16 return 0;
17}

18
19void move(int Num,char One,char Two,char Three)/*递归函数*/
20{
21 if (Num==1)
22 {
23  printf("%c---->%c\n",One,Three);
24 }

25 else
26 {
27  move(Num-1,One,Three,Two);/*先把Num-1个盘子移动到柱子B*/
28  printf("%c---->%c\n",One,Three);/*再把最后最大的盘子移动到柱子C*/
29  move(Num-1,Two,One,Three);/*最后把Num-1个盘子再移动到柱子C*/
30 }

31}

32/* CopyRight @2006 FreeFox All right reserved */
33

posted on 2008-06-17 15:05  FreeFox  阅读(149)  评论(0)    收藏  举报