<?php
/**
* Created by PhpStorm.
* User: liufeng
* Date: 2019/12/4
* Time: 11:14
*/
/**
* 汉诺塔问题( 积木,借助"中间柱",从 "源柱" 移动到 "目标柱" )
* @param $n 积木的数量
* @param $x 源柱
* @param $y 中间柱
* @param $z 目标柱
*/
function hanio($n, $x, $y, $z)
{
// 递归的退出条件
if ($n == 1) {
move($n, $x, $z);
} else {
hanio($n - 1, $x, $z, $y);
move($n, $x, $z);
hanio($n - 1, $y, $x, $z);
}
}
function move($n, $x, $y)
{
$format = '第 %d 个数: 从 %s 移动到 %s';
printf($format, $n, $x, $y);
echo '<br>';
}
/************** 计算使用时间 ******************/
$start_time = microtime(true);
$num = 3;
hanio($num, 'A', 'B', 'C');
$end_time = microtime(true);
echo '<hr>脚本执行时间 = ' . (($end_time - $start_time) * 1000 * 1000) . ' 微秒';
网友评论