<?php
/**
* 猴子选大王
* 17个猴子围成一圈,从某个开始报数1-2-3-1-2-3-……报“3”的猴子就被淘汰,
* 游戏一直进行到圈内只剩一只猴子它就是猴大王了
*
* 编程思路
* 如果猴子被淘汰则unset() 否则array_push() 不停循环 直至数组中只有一个元素
*
* 假如5个猴子 每报一个数 数组的值
*
* 初始数组
* Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )
* 开始报数
* Array ( [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 1 )
* Array ( [2] => 3 [3] => 4 [4] => 5 [5] => 1 [6] => 2 )
* Array ( [4] => 5 [5] => 1 [6] => 2 [7] => 4 )
* Array ( [5] => 1 [6] => 2 [7] => 4 [8] => 5 )
* Array ( [7] => 4 [8] => 5 [9] => 2 )
* Array ( [8] => 5 [9] => 2 [10] => 4 )
* Array ( [10] => 4 [11] => 2 )
* Array ( [11] => 2 [12] => 4 )
* Array ( [12] => 4 )
*/
function king($m, $n){
for($i = 1; $i < $m+1; $i++){
$arr[] = $i;
}
$i = 0;
print_r($arr);echo '<br>';
while(count($arr) > 1){
if(($i + 1) % $n == 0){
unset($arr[$i]);
}else{
array_push($arr, $arr[$i]);
unset($arr[$i]);
print_r($arr);echo '<br>';
}
$i++;
}
print_r($arr);
}
king(5, 3);