<?php
/**
* 一群猴子排成一圈,按1 2 3 ... n依次编号
* 然后从第一只开始数,数到第m只把它踢出去,从它后面数,再到m只,然后踢出去。直到最后一个猴子,为大王。
* 请算出大王的编号。
*/
function getKing($m,$n) {
// 初始化数据
$arr = [];
for($i = 1;$i<= $n ;$i++) {
$arr[] = $i;
}
// 循环次数,数组模拟队列
for($j = 1;$j <= ($n-1)*$m;$j++) {
$item = array_shift($arr); // 头一个出队列
if ($j % $m != 0) {
array_push($arr,$item); // 然后到队尾
}
}
return array_shift($arr);
}
echo getKing(3,5); // 4