法一:
function monkeyKing($n,$m)
{
$arr=range(1,$n);
$i=0;
while (count($arr)>1)
{
for($i=1;$i<=$m-1;$i++)
{
array_push($arr, array_shift($arr));
}
array_shift($arr);
}
echo "$arr[0]";
}
monkeyKing(6,4);//5
法二:
function king($m ,$n)
{
//构造数组
$arr=range(1,$m);
$i = 0 ; //设置数组指针
while(count($arr)>1)
{
//遍历数组,判断当前猴子是否为出局序号,如果是则出局,否则放到数组最后
if(($i+1)%$n ==0) {
unset($arr[$i]) ;
} else {
array_push($arr ,$arr[$i]) ; //本轮非出局猴子放数组尾部
unset($arr[$i]) ; //删除
}
$i++ ;
}
return $arr ;
}
var_dump(king(6,4));
法三://此法不是很理解 希望大家留下自己的见解
function yuesefu($n,$m) {
$r=0;
for($i=2; $i<=$n; $i++) {
$r=($r+$m)%$i;
}
return $r+1;
}
print_r(yuesefu(3,3));//2
以上就介绍了php猴子选大王,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。
本文原创发布php中文网,转载请注明出处,感谢您的尊重!