题目描述:
有一头母牛,到 4 岁时可生育,每年可生育一头小牛,假设所生均是一样的母牛,到 15 岁绝育,不再能生,20 岁死亡,问 n 年后有多少头牛?
分析与解答:
根据条件定义一个函数,参数 $n 代表多少年,定义最开始的牛的数量为 1;在循环中,当母牛年龄大于 4 并且小于 15 时,每年可以生一头小牛(即牛的总数加 1);递归调用这个函数,而函数的参数为 $n 减去已过去的年数;函数内还要判断如果牛的年龄为 20 时,那么牛的数量需减 1。
设 n 为 8 年,实现代码如下:
<?php
function bull($n){
static $num = 1;
for($j = 1; $j <= $n; $j++){
if($j>=4 && $j<15){
$num++;
bull($n - $j);
}
if($j == 20){
$num--;
}
}
return $num;
}
echo bull(8);
程序的运行结果为
7