求斐波那契数列的第n个数;1,1,2,3,5,8,13,21.....
PHP的写法如下=======================================
第一个递归的方法如下:
function test($n) { if ($n == 1 || $n == 2) { return 1; } return test($n - 2) + test($n - 1); }
优化改进循环的方法:
function test2($n) { $sum = 1; $sum1 = 1; if (1 == $n) { return 1; } else if (2 == $n) { return 1; } else { for ($i = 0; $i < $n - 2; $i++) // 第三项等于前两相加 { $tem = $sum; // tem 保存原来的sum $sum += $sum1; // sum= 前两项相加 $sum1 = $tem; // sum1 =原来的sum 始终保证第三项等于前两项相加 } return $sum; } }