You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

我的生成斐波那契累加序列的PHP函数存在什么问题?如何修复?

问题分析

你的函数当前仅生成了标准斐波那契序列(如[1,1,2,3,5]),但目标序列需要的是前一项序列值与当前斐波那契数的累加结果,核心问题在于:

  • 没有维护用于存储序列累加值的变量,直接将斐波那契数存入结果数组,完全偏离需求逻辑。
  • 斐波那契数的生成逻辑虽然正确,但未与序列的累加规则结合。
修复方案

新增变量跟踪当前序列的累加值,同时正确生成斐波那契数并参与累加:

function getResult($n) {
    $result = [];
    // 初始化斐波那契变量:起始斐波那契数为1
    $fibPrev = 0;
    $fibCurrent = 1;
    // 初始化序列累加值,第一个序列项为第一个斐波那契数
    $sequenceValue = 0;

    for ($i = 1; $i <= $n; $i++) {
        // 当前斐波那契数加到序列值上,得到新的序列项
        $sequenceValue += $fibCurrent;
        $result[] = $sequenceValue;
        
        // 生成下一个斐波那契数
        $fibNext = $fibPrev + $fibCurrent;
        $fibPrev = $fibCurrent;
        $fibCurrent = $fibNext;
    }

    return $result;
}
验证结果

调用getResult(5)时,返回结果为[1,2,4,7,12],完全匹配你给出的序列示例:

  • 第1项:1(累加第一个斐波那契数1)
  • 第2项:1+1=2(累加第二个斐波那契数1)
  • 第3项:2+2=4(累加第三个斐波那契数2)
  • 第4项:4+3=7(累加第四个斐波那契数3)
  • 第5项:7+5=12(累加第五个斐波那契数5)

内容的提问来源于stack exchange,提问作者LordOfLight

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 02:22:10