原创 C语言解决汉诺塔问题

2006-11-21 14:15 4402 9 9 分类: 软件与OS

汉诺塔(tower of hanoi)的总是是说明递归概念时不可错过的实例,这是一个流传在Brahma庙内的一个游戏,庙内的和尚相信完成这个游戏是一件不可能的任务。汉诺塔问题有三根木桩,共有n个盘子套放在第一个木桩汉诺塔问题是从木桩一移到木桩三,同时符合以下规定:


     1.每次只能移动一个盘子,而且只能从最上面的盘子搬动。


     2.任何盘子可以搬到任何一根木桩。


     3.必须维持盘子的大小是由上而下依次递增。


 


/*以下是递归函数


int hanoi(int dashs,int peg1,int peg2,int peg3)


{


      if  ( dishs == 1 )


            printf("盘子从%d 移动到 %d \n",peg1,peg3);


      else


          {


              hanoi(dishs - 1,peg1,geg3,peg2 );


              printf("盘子从%d 移动到 %d\n",peg1,peg3);


              hanoi(dishs - 1,peg2,peg1,peg3);


            }


     }


/*主程序*/


  void  main()


{


       hanoi(3,1,2,3);


}


 


PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
9
关闭 站长推荐上一条 /3 下一条