一群猴子排成一圈,按1,2,…,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,
原创
©著作权归作者所有:来自51CTO博客作者海阔凭鱼跃666的原创作品,请联系作者获取转载授权,否则将追究法律责任
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;
世界上最美的风景,是自己努力的模样