PHP遞歸解決兔子問題,面試必備

        接到面試通知展轉反側,一直在默唸明天改如何介紹本身的項目經驗等。早早的起牀,洗漱,把本身的總結的問題自問自答了一些。匆匆吃了早飯,擠進讓人面目猙獰的地鐵,此時什麼都不顧,只盼着趕忙下地鐵。終於提早半小時到了面試地點,再次拿出準備的問題看了幾眼,還剩15分鐘上去。跟着人力填了表格,而後給了我一個算法題。以下:php

        有一對兔子,從出生後第3個月起每一個月都生一對兔子,小兔子長到第三個月後每一個月又生一對兔子,假如兔子都不死,請編程輸出兩年內每一個月的兔子總數爲多少?java

        突然記起來,這道題以前跟一個朋友談論過,思路是同樣的。c++

第一種方法(for循環實現):面試

 

<?php算法

   function getResult($month){編程

      $one = 1; //第一個月兔子的對數spa

      $two = 1; //第二個月兔子的對數遞歸

      $sum = 0; //第$month個月兔子的對數get

      if($month < 3){io

         return ;

         }

      for($i = 2;$i < $month; $i++){

         $sum = $one + $two;

         $one = $two;

         $two = $sum;

      }

      echo $month.'個月後共有'.$sum.'對兔子';

   }

第二種方法(遞歸):

 

<?php

   function fun($n){

   if($n == 1 || $n == 2){

       return 1;

   }else{

       return fun($n-1)+fun($n-2);

   }

}

        過後,也去網上查了一下,可是大多數代碼示例都是C語言、c++、java等等語言的。並無太多PHP相關的代碼示例,這兩種方法,但願能夠幫到你們。

        其實整個面試過程挺緊張,好在最後完成的挺漂亮。這不,複試通知來了。

相關文章
相關標籤/搜索