您的位置:首页 > 编程语言 > PHP开发

用php实现斐波那契数列

2015-08-07 16:48 627 查看
//1 1 2 3 5 8 13 ....
//观察数列 你会发现下一个数是如何得来的
// f(3) = f(2) + f(1) f(4)=f(3)+f(2) f(18)=f(17)+f(16)
// 2 = 1 + 1 3 = 2 + 1 f($n) = f($n-1) + f($n-2)
//问第18位是多少

======================

function f($n){
if($n<3)return 1;
return f($n-1) + f($n-2);
}

echo f(18);

=====================

function f2($n){

$num1 = $num2 = $temp = 1;

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

//1 1 2 3 5 8 13 ....
$temp = $num1 + $num2;	//$temp = 2
$num1 = $num2;			//$num1 = 1
$num2 = $temp;			//$num2 = 2
}
return $temp;
}


function f3($n){
return (pow((1+sqrt(5))/2,$n) - pow((1-sqrt(5))/2,$n))/sqrt(5);
}

$num = $_GET['num'];

echo f3($num);
echo '<br/>';
echo f2($num);


三种方式、

第一种遍历的样式,数值大的话 会卡爆

第二种 第三种 速度比较快

第三种是一种公式的缩写  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: