编辑代码

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