个人原创,转载请注明出处,谢谢!
一、求斐波那契数列
斐波那契数,亦称之为斐波那契数列(意大利语: Successione di Fibonacci),又称黄金分割数列、费波那西数列、费波拿契数、费氏数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……用文字来说,就是斐波那契数列由 0 和 1 开始,之后的斐波那契数列系数就由之前的两数相加。
<?php
/**
* @description 斐波那契数列
* @param int $num 自然数
*/
function fibonacci(int $num)
{
$result = [];
// 判断参数是否被设置或是否为空
if (!isset($num) || empty($num)) {
return $result;
}
// 小于1的数直接返回
if ($num <= 1) {
return $result[] = $num;
}
//大于1的数处理
if ($num > 1) {
$result = [0, 1];
for ($i=2; $i<$num; $i++) {
$n = $result[$i-1] + $result[$i-2];
if ($n <= $num) {
$result[$i] = $n;
} else {
break;
}
}
return $result;
}
}
?>