说明:
n个猴子围成一圈,从某个开始报数1-2……m,1-2……m报“m”的猴子就被淘汰,
游戏一直进行到圈内只剩一只猴子它就是猴大王了。
代码实现
1,常规代码
function fun1($n,$m)
{
if($n<2){
echo '猴子数量不能小于2';
}
$arr = range(1,$n);
$num = 0;
for($i=2;$i<=$n*$m;$i++){
foreach($arr as $key => $val){
$num++;
if($num == $m){
unset($arr[$key]);
$num = 0;
if(count($arr) == 1){
return reset($arr);
}
}
}
}
}
2,数论代码
function fun2($n,$m) {
$a=0;
for($i=2;$i<=$n;$i++) {
$a=($a+$m)%$i;
}
return $a+1;
}
echo yuesefu(7,3);