小羊能活5岁,它在2岁,4岁的时候都会生一只小羊,5岁的时候就死亡了。问:现在有一只刚出生的小羊(0岁),n年后有多少只羊?
2 回答
慕尼黑8549860
TA贡献1818条经验 获得超11个赞
第一种:functionborn($n){$all=[0];for($i=0;$i<$n;$i++){$c=count($all);for($j=0;$j<$c;$j++){$all[$j]=$age=$all[$j]+1;if($age==2||$age==4){$all[]=0;}}}return$all;}//返回的数据中,把大于等于5的去掉就是了。第二种:(在@雪之祈舞的回答上作了一点修改)functionsheep($n){$y=[0=>1,1=>0,2=>0,3=>0,4=>0,5=>0,];for($i=0;$i<$n;$i++){for($j=5;$j>0;$j--){$y[$j]=$y[$j-1];}$born=$y[2]+$y[4];$y[0]=$born;}return$y;}//unset($y[5])再把各项加起来就可以了。两种方法得到的结果是一样的,但第一种方法不断往数组里添加刚出生的羊,数组长度越来越大,我测试了一下,大于50的时候就会出现内存不足的情况了。而第二种方法则完全不必担忧。
添加回答
举报
0/150
提交
取消