Fibonacci(斐波那契)數的兩種演算法實現
阿新 • • 發佈:2019-01-31
1、遞迴演算法實現,如下:
function getNum($n){
if($n == 0 || $n == 1){
return 1;
}
return getNum($n-1) + getNum($n-2);
}
程式碼簡單,易懂,但是計算速度很慢,當getNum(50)的時候基本程式就會掛掉
第二種遞迴演算法
function fn($a,$b,$n){
if($n > 1) {
return fn($a+$b,$a,$n-1);
}
return $a;
}
2、迴圈實現
function getNum2($n){ if($n == 0 || $n == 1){ return 1; } $arr[] = 1; $arr[] = 1; for($i = 2; $i <= $n; $i++){ $arr[$i] = $arr[$i - 1] + $arr[$i-2]; } return $arr[$n]; }
程式碼相對難理解,執行速度快。