php演算法:母牛生小牛問題
有一母牛,到4歲可生育,每年一頭,所生均是一樣的母牛,到15歲絕育,不再能生,20歲死亡,問n年後有多少頭牛。
遞迴版(論壇裡的)
function t($n) {
static $num = 1;
for($j=1; $j<=$n; $j++){
$count++;
if($j>=4 && $j<15) {$num++;t($n-$j);}
if($j==20){$num--;}
}
return $num;
}
非遞迴版(原創)
function suanfa($n =10){
if ($n<=3){
return 1;
}else {
$arr = [];
$arr[] = 4;
for ($i = 4; $i <= $n; $i++) {
$count++;
$newArr = [];
foreach ($arr as $key => $age) {
if ($age < 3) {
$arr[$key] = $age + 1;
} elseif ($age < 15) {
$arr[$key] = $age + 1;
$newArr[] = 0;
} elseif ($age <19) {
$arr[$key] = $age + 1;
} else {
unset($arr[$key]);
}
}
foreach ($newArr as $value){
$arr[] = 0;
}
}
return count($arr);
}
}
兩者在時間大於20年後有差異,因為題目對於這個過一年的定義很模糊,不過思路肯定是沒問題。遞迴演算法看似程式碼很少,實際執行的迴圈次數是比非遞迴版的多的,而且程式碼可讀性差。
相關文章
- (山理工 1243)母牛問題(大牛生小牛,小牛生。。。。)
- 題解1236:母牛生小牛 (Java描述)Java
- php簡單演算法 - 肇事車輛問題PHP演算法
- php陣列問題PHP陣列
- PHP 常見問題PHP
- php演算法面試題PHP演算法面試題
- 母牛的故事 hd 2018
- 生產消費問題
- 1014: 牛生牛問題
- PHP面試問題總結PHP面試
- PHP中 mkdir: Permission denied 問題PHP
- 配置 Homestead 遇到 PHP 版本問題PHP
- A+B 演算法問題演算法
- 演算法——路徑問題演算法
- PHP 開發版本問題處理PHP
- PHP 與 JS 的編碼問題PHPJS
- 32 位 PHP 時間戳問題PHP時間戳
- 關於PHP佇列的問題PHP佇列
- 關於php生成靜態問題PHP
- Mac 下切換 PHP 版本問題MacPHP
- iis + php 遇到問題:php-cgi.exe - FastCGI 程式意外退出PHPAST
- ngnix叢集產生的問題
- ThinkPHP 訪問路徑隱藏 index.php 問題PHPIndex
- 關於PHP的OpenSSL的加密問題PHP加密
- PHP JSON_decode 返回為 null 問題PHPJSONNull
- golang 解析php輸出json相容問題GolangPHPJSON
- php比較運算子的安全問題PHP
- PHP flock 檔案鎖的使用問題PHP
- php部署到nginx時遇到的問題PHPNginx
- php傳遞json給jquery的問題PHPJSONjQuery
- PHP弱型別安全問題總結PHP型別
- 分治演算法-眾數問題演算法
- 問一個 python 演算法題Python演算法
- 字串匹配問題——KMP演算法字串匹配KMP演算法
- Flink生產環境常見問題
- 生產者與消費者問題
- PHP 安全問題入門:10 個常見安全問題 + 例項講解PHP
- 解決問題:laravel/ui ,php artisan ui bootstrapLaravelUIPHPboot