-
例如,有这样一个php取一算法的具体面试题,问题如下:
-
一群猴子排成一圈,按1,2,…,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去…,如此不停的进行下去,直到最后只剩下一只猴子为止,那只猴子就叫做大王。
/**
不踢出去的猴子放在尾巴排队继续等待下一轮是否被踢
* [1,,,,,,,,9,]
* [@param](https://my.oschina.net/u/2303379) unknown $n 一共n个猴子
* [@param](https://my.oschina.net/u/2303379) unknown $m 第m个踢出去
*/
public function king($n=10, $m=3)
{
$monkey = range(1, $n);
$totalMonkey = count($monkey);
$i=0;
while (count($monkey) > 1) {
if (($i+1)%$m != 0) {
$monkey[] = $monkey[$i];
}
unset($monkey[$i]);
$i++;
}
return $monkey;
}