<?php
//PHP函数实战-汉诺塔递归算法
//步骤模拟
function hanoi($n,$x,$y,$z){
if($n==1){
move($x,1,$z);
}else{
hanoi($n-1,$x,$z,$y);
move($x,$n,$z);
hanoi($n-1,$y,$x,$z);
}
}
function move($x,$n,$z){
echo'将圆盘'.$n.'从'.$x.'移动到'.$z.'<br>';
}
//计算次数
function hnt($n){
if($n === 1){
return 1;
}
return 2* hnt($n - 1) + 1;
}
echo '一共需要移动:'.hnt(3).'次';
echo PHP_EOL;
hanoi(3,'x','y','z');
?>