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;