PHP编写一个函数fibonacci,接受一个参数n并返回裴波那契数列的前n项
时间: 2024-10-22 22:15:04 浏览: 44
PHP中编写斐波那契数列的函数可以利用递归或循环的方式来实现。这里提供一个简单的递归版本的`fibonacci`函数:
```php
function fibonacci($n) {
// 斐波那契数列的基本条件
if ($n <= 0) {
return "请输入正整数";
} elseif ($n == 1 || $n == 2) {
return 1;
} else {
// 递归计算第n项
return fibonacci($n - 1) + fibonacci($n - 2);
}
}
// 示例:打印斐波那契数列的前5项
for ($i = 1; $i <= 5; $i++) {
echo fibonacci($i) . ", ";
}
```
递归方法虽然简洁,但对于较大的n值可能会导致性能问题,因为它会重复计算很多已知的值。若需要优化,可以使用动态规划存储中间结果,如循环版本所示:
```php
function fibonacci($n, &$cache = []) {
// 使用数组缓存避免重复计算
if (isset($cache[$n])) {
return $cache[$n];
}
// 初始条件和基本条件
if ($n <= 0) {
return "请输入正整数";
} elseif ($n == 1 || $n == 2) {
$cache[$n] = 1;
return 1;
} else {
$cache[$n] = fibonacci($n - 1, $cache) + fibonacci($n - 2, $cache);
return $cache[$n];
}
}
// 示例:打印斐波那契数列的前5项
for ($i = 1; $i <= 5; $i++) {
echo fibonacci($i) . ", ";
}
```
阅读全文