点击查看 王琦的个人博客 记录一些知识分享一些心得
php猴子选大王的代码。
2015 8.24 0:46
1 function getKing($m,$n){
2 $arr = array(); //定义一个存放猴子的数组;
3 $a = "a"; //定义猴子编号;
4 for($i=0;$i<$m;$i++){ //开始循环给每个猴子附上编号;
5 $arr[] = $a++; //循环a到M(给出猴子的数量);
6 }
7
8 $i = 0; //定义一个报数的变量;
9 while(count($arr)>1){ //获取猴子个数,只要猴子不小于1就一直循环
10 if($i%$n == 0){ //报的数对N取余(设定的数,报道几就对几取余,余数为0,则那只猴子被提出游戏)
11 unset($arr[$i]); //删除余数为零的数组元素
12 }else{
13 $arr[] = $arr[$i]; //如果为0则删除数组元素,否则没被删除的,则增加至队尾,下一轮继续报数,
14 unset($arr[$i]); //删除数组刚才添加的那个数组元素,抽象理解为 : 需要的数例如为5,1 2 3 4 号位的猴子没有报道,则添加
16 } //1 2 3 4为队尾,下轮继续,而5号位的猴子正好报道5,被提出游戏,6号位的猴子从1开始报,反复如此,
17 $i++;
18 }
19 return $arr;
20 }
21 print_r(getKing(20,5));