php经典口试题:猴王的问题
有 一群猴子排成一圈,按1,2,...,n依次编号。
然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数, 再数到第m只,在把它踢出去...,

如此一直的进行下去, 直到末了只剩下一只猴子为止,那只猴子就叫做大王。
哀求:编程仿照此过程,输入m、n, 输出末了那个大王的编号。
下面供应一种自己认为比较随意马虎理解的解题方法:
1
1 <span></span>
1
1 function getKingMonkey($n,$m){
2 $monkey=range(1,$n); //构建猴子数组
3 $i=0;
4 //遍历猴子数组
5 while( list($k,$value)=each($monkey)){
6 if(count($monkey)==1){
7 echo $value. \"大众是猴王\公众;
8 exit();
9 }
10
11 if(++$i==$m){
12 echo $monkey[$k].'踢出去'.'<br>';
13 unset($monkey[$k]); //把变量 打消
14 $i=0; //指针归位
15 }
16 //如果已经数到末了的话 则连续进行下一轮的循环
17 if(!current($monkey)){
18 reset($monkey);
19 }
20 }
21 }