汉诺塔

 1 <?php 
 2 /**
 3 *汉诺塔
 4 *递归结束条件:
 5 *当未移往目的桩的铁盘数为1时,将编号为1的铁盘移至目的桩。
 6 *
 7 *递归执行部分:
 8 *(1)将前N-1个铁盘从来源桩移往辅助桩。
 9 *(2)将编号为N的铁盘从来源桩移至目的桩。
10 *(3)将前N-1个铁盘从辅助桩移至目的桩。
11 */
12 $counter = 1;//初始化计数器
13 function hanoi($from,$to,$aux,$num){
14     global $counter;
15     if (1==$num){
16         echo '第'.$counter++.'步:'.$num.'铁盘从'.$from.'桩移至'.$to.'桩<br/>';
17     }else{
18         hanoi($from,$aux,$to,$num-1);
19         echo '第'.$counter++.'步:'.$num.'铁盘从'.$from.'桩移至'.$to.'桩<br/>';
20         hanoi($aux,$to,$from,$num-1);
21     }
22 }
23 $from = 'A';//桩A
24 $to = 'C';//桩C
25 $aux = 'B';//桩B(辅助桩)
26 $num = 3;//铁盘数
27 hanoi($from,$to,$aux,$num);

 

posted @ 2013-03-04 14:43  lpfuture  阅读(199)  评论(0编辑  收藏  举报