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);