1. 程式人生 > >約瑟夫環-一群猴子排成一圈,按1,2,…,n依次編號。然後從第1只開始數,數到第m只,把它踢出圈

約瑟夫環-一群猴子排成一圈,按1,2,…,n依次編號。然後從第1只開始數,數到第m只,把它踢出圈

依次 進行 nbsp log 開始 func unset dump bsp

一群猴子排成一圈,按1,2,…,n依次編號。然後從第1只開始數,數到第m只,把它踢出圈,從它後面再開始數,再數到第m只,在把它踢出去…,如此不停 的進行下去,直到最後只剩下一只猴子為止,那只猴子就叫做大王。要求編程模擬此過程,輸入m、n, 輸出最後那個大王的編號(約瑟夫環)。

function fuhuan($allnum, $ti){
$arr = array();
for($i = 0; $i < $allnum; $i++){
$arr[$i] = $i;
}

$nums = 1;
while(count($arr) > 1){
foreach ($arr as $key => $value) {
if($nums == $ti){
unset($arr[$key]);
$nums = 1;
}else{
$nums++;
}
}
}
$new_arr = array_values($arr);
var_dump($new_arr[0] + 1);
}
fuhuan(10,10);

約瑟夫環-一群猴子排成一圈,按1,2,…,n依次編號。然後從第1只開始數,數到第m只,把它踢出圈