PHP基于遞歸算法解決兔子生兔子問(wèn)題
本文實(shí)例講述了PHP基于遞歸算法解決兔子生兔子問(wèn)題。分享給大家供大家參考,具體如下:
接到面試通知輾轉(zhuǎn)反側(cè),一直在默念明天改如何介紹自己的項(xiàng)目經(jīng)驗(yàn)等。
早早的起床,洗漱,把自己的總結(jié)的問(wèn)題自問(wèn)自答了一些。
匆匆吃了早飯,擠進(jìn)讓人面目猙獰的地鐵,此時(shí)什么都不顧,只盼著趕緊下地鐵。終于提前半小時(shí)到了面試地點(diǎn),再次拿出準(zhǔn)備的問(wèn)題看了幾眼,還剩15分鐘上去。跟著人力填了表格,然后給了我一個(gè)算法題。
如下:有一對(duì)兔子,從出生后第3個(gè)月起每個(gè)月都生一對(duì)兔子,小兔子長(zhǎng)到第三個(gè)月后每個(gè)月又生一對(duì)兔子,假如兔子都不死,請(qǐng)編程輸出兩年內(nèi)每個(gè)月的兔子總數(shù)為多少?
忽然記起來(lái),這道題之前的一個(gè)朋友跟我談?wù)撨^(guò),思路是一樣的。
第一種方法(for循環(huán)實(shí)現(xiàn)):
<?php
function getResult($month){
$one = 1; //第一個(gè)月兔子的對(duì)數(shù)
$two = 1; //第二個(gè)月兔子的對(duì)數(shù)
$sum = 0; //第$month個(gè)月兔子的對(duì)數(shù)
if($month < 3){
return ;
}
for($i = 2;$i < $month; $i++){
$sum = $one + $two;
$one = $two;
$two = $sum;
}
echo $month.'個(gè)月后共有'.$sum.'對(duì)兔子';
}
//測(cè)試:
getResult(8)
//輸出:8個(gè)月后共有21對(duì)兔子
第二種方法(遞歸):
<?php
function fun($n){
if($n == 1 || $n == 2){
return 1;
}else{
return fun($n-1)+fun($n-2);
}
}
//測(cè)試:
echo fun(8)
//輸出:21
事后,也去網(wǎng)上查了一下,但是大多數(shù)代碼示例都是C語(yǔ)言、c++、java等等語(yǔ)言的。并沒(méi)有太多PHP相關(guān)的代碼示例,這兩種方法,希望可以幫到大家。
其實(shí)整個(gè)面試過(guò)程挺緊張,好在最后完成的挺漂亮。這不,復(fù)試通知來(lái)了,感謝那個(gè)千鋒PHP哥們。
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》、《php程序設(shè)計(jì)算法總結(jié)》、《php字符串(string)用法總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《PHP常用遍歷算法與技巧總結(jié)》及《PHP數(shù)學(xué)運(yùn)算技巧總結(jié)》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
- PHP遞歸的三種常用方式
- php遞歸函數(shù)三種實(shí)現(xiàn)方法及如何實(shí)現(xiàn)數(shù)字累加
- PHP 無(wú)限分類(lèi)三種方式 非函數(shù)的遞歸調(diào)用!
- php菜單/評(píng)論數(shù)據(jù)遞歸分級(jí)算法的實(shí)現(xiàn)方法
- PHP遞歸算法的簡(jiǎn)單實(shí)例
- PHP基于非遞歸算法實(shí)現(xiàn)先序、中序及后序遍歷二叉樹(shù)操作示例
- PHP基于二分法實(shí)現(xiàn)數(shù)組查找功能示例【循環(huán)與遞歸算法】
- PHP實(shí)現(xiàn)字符串翻轉(zhuǎn)功能的方法【遞歸與循環(huán)算法】
- PHP基于遞歸實(shí)現(xiàn)的約瑟夫環(huán)算法示例
- PHP使用遞歸算法無(wú)限遍歷數(shù)組示例
- php獲得文件夾下所有文件的遞歸算法的簡(jiǎn)單實(shí)例
- PHP二分查找算法示例【遞歸與非遞歸方法】
- PHP冒泡算法詳解(遞歸實(shí)現(xiàn))
- 關(guān)于PHP遞歸算法和應(yīng)用方法介紹
- PHP遞歸算法的詳細(xì)示例分析
- php全排列遞歸算法代碼
- php實(shí)現(xiàn)遞歸的三種基本方式
相關(guān)文章
PHP入門(mén)教程之面向?qū)ο蟮奶匦苑治?繼承,多態(tài),接口,抽象類(lèi),抽象方法等)
這篇文章主要介紹了PHP入門(mén)教程之面向?qū)ο蟮奶匦?結(jié)合實(shí)例形式分析了php面向?qū)ο笏婕暗睦^承、多態(tài)、接口、抽象類(lèi)及抽象方法等,需要的朋友可以參考下2016-09-09
解決laravel 出現(xiàn)ajax請(qǐng)求419(unknown status)的問(wèn)題
今天小編就為大家分享一篇解決laravel 出現(xiàn)ajax請(qǐng)求419(unknown status)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09
基于Surprise協(xié)同過(guò)濾實(shí)現(xiàn)短視頻推薦方法示例
這篇文章主要為大家介紹了基于Surprise協(xié)同過(guò)濾實(shí)現(xiàn)短視頻推薦方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07
php自定義時(shí)間轉(zhuǎn)換函數(shù)示例
這篇文章主要介紹了php自定義時(shí)間轉(zhuǎn)換函數(shù),可實(shí)現(xiàn)時(shí)間戳與字符串時(shí)間顯示格式之間的轉(zhuǎn)換功能,需要的朋友可以參考下2016-12-12
php實(shí)現(xiàn)基于微信公眾平臺(tái)開(kāi)發(fā)SDK(demo)擴(kuò)展的方法
這篇文章主要介紹了php實(shí)現(xiàn)基于微信公眾平臺(tái)開(kāi)發(fā)SDK(demo)擴(kuò)展的方法,包括處理文本消息、天氣、翻譯、聊天信息及自定義菜單等,需要的朋友可以參考下2014-12-12
php實(shí)現(xiàn)RSA加密類(lèi)實(shí)例
這篇文章主要介紹了php實(shí)現(xiàn)RSA加密類(lèi),實(shí)例分析了php自定義RSA類(lèi)實(shí)現(xiàn)加密與解密的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-03-03
php實(shí)現(xiàn)求相對(duì)時(shí)間函數(shù)
這篇文章主要介紹了php實(shí)現(xiàn)求相對(duì)時(shí)間函數(shù),可實(shí)現(xiàn)簡(jiǎn)單求相對(duì)時(shí)間為幾分鐘前或幾小時(shí)前的功能,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下2015-06-06

