<?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);
原文:http://www.cnblogs.com/catcrazy/p/6250345.html