一羣猴子排成一圈,按1,2,...,n依次編號。
然後從第1只開始數,數到第m只,把它踢出圈,
從它後面再開始數,再數到第m只,在把它踢出去...,
如此不停的進行下去,直到最後只剩下一隻猴子爲止,那隻猴子就叫做大王。
示意圖:
php代碼:
$arr = array('a','b','c','d','e','f','g','h');//示例數組
echo '<pre>The King is :<br/>';
print_r(king($arr,11));
function king($arr,$count){
$i = 1;//從1開始
while(count($arr) > 1){
if($i%$count == 0){//用求餘,計算數到的位,如果求餘爲0,所數到的位消除,壓出數組中
unset($arr[$i-1]);
}else{//數到的位不是結束,把這一位放到數組末尾,並消掉這個位
array_push($arr,$arr[$i-1]);
unset($arr[$i-1]);
}
$i++;//轉移到下一個數組元素
}
return $arr;
}