小羊能活5歲,它在2歲,4歲的時候都會生一只小羊,5歲的時候就死亡了。問:現(xiàn)在有一只剛出生的小羊(0歲),n年后有多少只羊?
2 回答

慕斯王
TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超2個贊
第一種:
function born($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; }//返回的數(shù)據(jù)中,把大于等于5的去掉就是了。
第二種:(在 @雪之祈舞 的回答上作了一點(diǎn)修改)
function sheep($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]) 再把各項(xiàng)加起來就可以了。
兩種方法得到的結(jié)果是一樣的,但第一種方法不斷往數(shù)組里添加剛出生的羊,數(shù)組長度越來越大,我測試了一下,大于 50 的時候就會出現(xiàn)內(nèi)存不足的情況了。
而第二種方法則完全不必?fù)?dān)憂。
添加回答
舉報
0/150
提交
取消