<?php
/*
*一群猴子排成一圈,按1,2,...,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,
*从它后面再开始数,再数到第m只,在把它踢出去...,如此不停的进行下去,
*直到最后只剩下一只猴子为止,那只猴子就叫做大王。要求编程模拟此过程。
*作者:hyc
*/
$arr = array(A,B,C,D,E,F,G); //猴子数组
function tiHouZi($arr,$num){
if($num<=1) echo '数字错误!'; //判断数的数是否为0以上的.
$lenght = count($arr);
if($lenght<=1) echo '数组错误!'; //判断数组是否符合要求:长度大于1个.
$i = 1;
while($lenght > 1){
if($i == $num){//到了M只猴子后,进行踢猴子操作
$ar = each($arr);
unset($arr[$ar[key]]);
prev($arr);
$i = 0;
}
if(next($arr) == false)reset($arr);//如果数组到了尽头,则从置数组
$i++;
$lenght = count($arr);
}
return $arr;
}
print_r(tiHouZi($arr,3));
?>
如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛