首页 > 编程语言> > 一群猴子排成一圈,按1,2,…,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去…,如此不停 的进行下去,直到最后只剩下一只猴子为止,那只猴子就叫做
一群猴子排成一圈,按1,2,…,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去…,如此不停 的进行下去,直到最后只剩下一只猴子为止,那只猴子就叫做
作者:互联网
function monkey($m,$n){ if(is_int($m) || is_int($n)) return -1; if($m < 0 || $n<0) return -1; //生成一个随机数组 $arr = range(1,$n,1);//2从1开始,$n结束,定长是1 $i= 0 ;//当前的指针 while(count($arr) >1){ if(($i+1)%$m == 0){ //这个时候$i 就是m unset($arr[$i]); //然后剔除 }else{ array_push($arr,$arr[$i]);//如果$i的值不是m,那么从新把$i的值插入到末尾,然后删除前面原有$i的值,因为是圈型 unset($arr[$i]); } $i++; } return $arr[$i]; } print_r(monkey(3,5)); 假如m =3,n=5;
标签:arr,return,monkey,int,猴子,编号,大王,unset 来源: https://www.cnblogs.com/xiong-hua/p/13946848.html