斐波那契數(shù)列(Fibonacci sequence),又稱黃金分割數(shù)列、因數(shù)學(xué)家列昂納多·斐波那契(Leonardoda Fibonacci)以兔子繁殖為例子而引入,故又稱為“兔子數(shù)列”,指的是這樣一個數(shù)列:1、1、2、3、5、8、13、21、34、……,簡單來說,斐波那契數(shù)列就是一系列元素,前兩個元素相加得到下一個元素,從0和1開始。
在本文中,我們將給大家介紹如何用PHP實(shí)現(xiàn)斐波那契數(shù)列。給定一個數(shù)字n,我們需要找到斐波那契數(shù)列直到第n項。
例子:
輸入:10
輸出:0 1 1 2 3 5 8 13 21 34
輸入:15
輸出:0 1 1 2 3 5 8 13 21 34 55 89 144 233 377
方法1:使用遞歸方式
遞歸是我們重復(fù)調(diào)用相同函數(shù)直到匹配基本條件以結(jié)束遞歸的方式。
- <?php
- function Fibonacci($number){
- if ($number == 0)
- return 0;
- else if ($number == 1)
- return 1;
- else
- return (Fibonacci($number-1) +
- Fibonacci($number-2));
- }
- $number = 10;
- for ($counter = 0; $counter < $number; $counter++){
- echo Fibonacci($counter),' ';
- }
輸出:
0 1 1 2 3 5 8 13 21 34
方法2:使用迭代方法
首先,我們將第一個和第二個數(shù)字初始化為0和1.然后,我們打印第一個和第二個數(shù)字。然后我們將流程發(fā)送到迭代while循環(huán),我們通過添加前兩個數(shù)字得到下一個數(shù)字,同時我們將第一個數(shù)字與第二個數(shù)字交換,第二個數(shù)字與第三個數(shù)字交換。
- <?php
- function Fibonacci($n){
- $num1 = 0;
- $num2 = 1;
- $counter = 0;
- while ($counter < $n){
- echo ' '.$num1;
- $num3 = $num2 + $num1;
- $num1 = $num2;
- $num2 = $num3;
- $counter = $counter + 1;
- }
- }
- //Vevb.com
- $n = 10;
- Fibonacci($n);
輸出:
0 1 1 2 3 5 8 13 21 34
新聞熱點(diǎn)
疑難解答