一群猴子排成一圈,按1,2,…,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去…,如此不停的进行下去,直到最后只剩下一只猴子为止,那只猴子就叫做大王。要求编程模拟此过程,输入m、n, 输出最后那个大王的编号。用程序模拟该过程
function test($m,$n){ //$n猴子的数量,也是用来编号的,$m踢出猴子要数的数
$arr=array();
$arr[1]=1;
for($x=2;$x<=$n;$x++){ //编号
$arr[]=$x;
}
$i=1;
while(count($arr)>1){
foreach($arr as $key=>$val){
if($i%$m==0){ //数到m就踢出
unset($arr[$key]);
}
$i++;
}
}
return $arr;
}
$newarr=test(5,200);
print_r($newarr);
?>
阅读(992) | 评论(1) | 转发(0) |