一群猴子排成一圈,按1,2,...n 编号,数到m只,踢出局,直到剩下最后一个猴子是大王
<?php
/**
*function king
*@param $m 数到m个数, $n 猴子个数
*return int
*/
function king($m, $n){
//定义数组, 值为猴子个数
$arr = range(1, $n);
//定义计数,数组的下标
$i = 0;
//循环,数组大于1,就是没有得到最后编号,数组不大于1,就是得到最后的编号
while(count($arr)>1){
//判断当前猴子是否出局
if(($i+1)%$m == 0){
//出局删除
unset($arr[$i]);
} else {
//不出局, 放到数组最后面
array_push($arr, $arr[$i]);
//删除对应的值
unset($arr[$i]);
}
//数组下标加一
$i++;
}
//返回数组为最后猴子的编号
return $arr;
}
var_dump(king(6,4));//第三个是国王
?>