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

打印每项为前三项之和的长度为n的序列及代码问题排查

问题排查与修复

错误根因

  • 初始值设置不匹配需求:题目要求序列前三项均为1,原代码仅给arr[0]赋值为1,arr[1]、arr[2]通过递推逻辑计算得到1、2,从第三项开始就不符合预期,后续所有项的计算自然全部偏移。
  • 代码硬编码序列长度为9,无法适配任意长度n的通用需求。

修复方案

方案1:基于原代码的最小修改

只调整初始值和循环起始位置,保留原代码的累加逻辑:

arr = [0 for i in range(9)]
# 提前初始化前三项为预期值
arr[0] = 1
arr[1] = 1
arr[2] = 1
# 从第四项(下标3)开始递推计算
for i in range(3,9):
    j = i-1
    count = 0
    sum = 0
    while (j>=0 and count < 3):
        sum = sum + arr[j]
        j = j - 1
        count = count + 1
    arr[i] = sum
for i in range(0,9):
    print(arr[i], end=' ')

方案2:通用优化实现

支持输入任意长度n,代码更简洁高效:

def generate_tribonacci(n):
    # 处理边界场景
    if n <= 0:
        return []
    elif n == 1:
        return [1]
    elif n == 2:
        return [1, 1]
    # 初始化前三项
    res = [1, 1, 1]
    # 从第四项开始递推,每一项等于前三项之和
    for i in range(3, n):
        res.append(res[-1] + res[-2] + res[-3])
    return res

# 测试生成长度为9的序列
print(' '.join(map(str, generate_tribonacci(9))))

验证结果

两种方案输出均为:1 1 1 3 5 9 17 31 57,和预期结果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 15:36:03