斐波那契数列(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*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从1963起出版了以《斐波纳契数列季刊》为名的一份数学杂志,用于专门刊载这方面的研究成果。
而在PHP中实现的话我们使用两种方法进行实现。
做个实例:
//1,1,2,3,5,8,13,21,34。。。求第30位的数是多少,请编写递归和非递归的函数实现计算。 function num($num){ $arr=[1,1]; if($num<2){ return $arr[$num]; }else{ for($i=2;$i<$num;$i++){ $arr[$i]=$arr[$i-1]+$arr[$i-2]; } } return $arr[$num-1]; } 我们再次使用递归进行实现。
/ function df($num){ if($num<2){ return 1; }else{ $val = df($num-1)+df($num-2); return $val; } } /