1,1,2,3,5,8,13,21,34....求第30位的数字是多少,要求编写递归函数和非递归函数实
数列从第三项开始,每一项都等于前两项之和。
F0=0,F1=1,Fn=F(n-1)+F(n-2)
用php代码实现
<?php
function fb($n){
$array = array();
$array[0] = 1;
$array[1] = 1;
for($i=2;$i<$n;$i++){
$array[$i] = $array[$i-1]+$array[$i-2];
}
echo "<pre>";
print_r($array);
}
fb(30);
echo "递归"
function fb_rec($n){
if($n==1||$n==2){return 1;}
else{
return fb_rec($n-1)+fb_rec($n-2);
}
}
echo fb_rec(30);
?>
非递归 递归
以上可以看出递归效率很低。。