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

使用数组/元组打印指定规则数字模式 代码未达预期如何修复

现有代码问题
  • 函数逻辑完全不符合生成规则:没有逐行存储和计算的逻辑,仅在循环第一次迭代就返回了二元元组,直接终止函数运行,无法生成多行结果。
  • 缺少上一行结果的存储逻辑:题目要求每一行的生成都依赖上一行的所有元素,现有代码没有任何变量存储历史行数据。
  • 存在无限递归风险:函数内部循环外写了print(append(n)),会导致函数不断调用自身,直到触发递归深度报错。
  • 输出格式不匹配:要求返回/打印每行的列表结构,现有代码返回的是元组类型,不符合要求。
修复后可运行代码
def generate_pattern(n: int):
    # 初始化结果列表,第0行是[1]
    res = [[1]]
    # 已经有第0行,还需要生成n-1行
    for i in range(1, n):
        prev_row = res[-1]
        current_row = [prev_row[-1]]
        # 遍历上一行的每个位置,计算当前行后续元素
        for j in range(len(prev_row)):
            current_row.append(current_row[-1] + prev_row[j])
        res.append(current_row)
    # 逐行打印
    for row in res:
        print(row)
    return res

# 测试n=4的情况
generate_pattern(4)
代码说明
  • 首先初始化结果列表,放入规则要求的第0行[1]
  • 逐行生成后续内容:每一行的第一个元素取上一行的最后一个元素
  • 后续元素按照规则计算:当前行前一个元素 + 上一行对应位置的元素,追加到当前行
  • 生成完所有行后逐行打印,同时返回完整结果供后续使用
  • 传入n=4时输出和题目要求的示例完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 15:54:03