一群猴子排成一圈,按1,2,…,n依次編號。然後從第1只開始數,數到第m只,把它踢出圈,從它後面再開始數,再數到第m只,在把它踢出去…,如此不停的進行下去,直到最後只剩下一只猴子為止,那只猴子就叫做大王。要求編程模擬此過程,輸入m、n, 輸出最後那個大王的編號
// 基本思路,判斷猴子是否為出局的,是就刪除,不是就放在數據尾部
function xdw($m, $n){
for($i = 1; $i <= $n; $i++){
$arr[] = $i;
}
for($i = 0; count($arr)>1; $i++){
if( ($i + 1) % $m == 0){
unset($arr[$i]);
}else{
array_push($arr, $arr[$i]);
unset($arr[$i]);
}
}
return $arr;
}
print_r(xdw(2,10));