首先看看斐波那契数列的结构吧
斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)
观察此规律,对于代码的实现,我们可以采用递归来完成
代码实现如下:
<?php /** * Created by PhpStorm. * User: sha * 斐波那契数列的简单实现 * $idx:数列的下标索引,从0开始计 */ function fbnc($idx){ // 1 1 2 3 5 8 13 21 34 //f(0) = 1 f(1)= 1 f(n) = f(n-1)+f(n-2) if($idx < 0){ return -1; } if($idx === 0 || $idx === 1){ return 1; } return fbnc($idx - 1) + fbnc($idx - 2); } echo fbnc(8); //结果验证 34