猴王这个题目也是比较多的。
<?php function killMonkey(array $monkeys , $m , $current = 0){ $number = count($monkeys);//去猴子的个数 $num = 1;//计数器) if(count($monkeys) == 1){ //如果只有一个猴子他就是猴王 echo $monkeys[0].'king'; return; } else{ while($num++ < $m){ //当计数小于要踢走的数字时 $current++ ; echo $current; echo $number.'<br/>'; $current = $current%$number;//当$current>$number时,$current=0;当循环到最后一直猴子的时候将key清零。 echo $current.'hello<br/>'; } echo $monkeys[$current].'out<br/>';//找到了要踢走的猴子 array_splice($monkeys , $current , 1);//从数组中删除这个猴子 killMonkey($monkeys , $m , $current);//递归 } } for($i=1;$i<=20;$i++){ $monkeys[]=$i; } killMonkey($monkeys , 6); ?>
这里的代码主要是在$current = $current%$number 他的作用等同于让指针归零。
还有一种方法:
function
getKingMonkey(
$n
,
$m
){