<?php
function han($n,$a,$b,$c){
if($n==1){
echo $a.'----->'.$c.'<br>';
}else{
han($n-1,$a,$c,$b);
han(1,$a,$b,$c);
han($n-1,$b,$a,$c);
}
}
han(5,'A','B','C');
用递归实现汉诺塔移动盘子的问题;$n代表有几个盘子,han这个函数表示n个盘子借助$b把盘子从$a移动到$c,结束条件是只有一个盘子时从$a移动到$c,要不然就先把$n-1个盘子借助$c从$a移动到$b,再把最后一个盘子从$a移动到$c,这样最大的盘子就在$c的最下面了,然后就把$b上的$n-1个盘子借助$a移动到$c,这样汉诺塔的问题就解决啦,移动次数为2的n次方减一。