php小试
猴子找大王
1、一群猴子排成一圈,按1,2,…,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去…,如此不停的进行下去,直到最后只剩下一只猴子为止,那只猴子就叫做大王。要求编程模拟此过程,输入m、n, 输出最后那个大王的编号。
function king($m, $n) {
$monkeys = range(1, $n);
$i = 0;
while (count($monkeys) > 1) {
if(($i + 1) % $m != 0) {
array_push($monkeys, $monkeys[$i]);
}
unset($monkeys[$i]);
$i++;
}
return $monkeys;
}
- 有一母牛,到4岁可生育,每年一头,所生均是一样的母牛,到15岁绝育,不再能生,20岁死亡,问n年后有多少头牛。
function cow_number($cows, $years) {
for($i = 0; $i < $years; $i++) {
echo "this is the $i TH , \n";
foreach ($cows as $k=>$c) {
if($c >= 20) {
unset($cows[$k]);
} else {
if($c >= 4 && $c < 15) {
array_push($cows, 0);
}
$cows[$k]++;
}
}
}
return count($cows);
}
$cows = [1];
echo cow_number($cows, 30);
网友评论