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

如何使用Python打印帕斯卡三角,基于11幂次的代码输出异常如何修复

帕斯卡三角实现问题解决方案

问题结论

split()方法可以解决当前的输出异常问题,需要搭配字符串转换操作完成。

原代码问题分析

  • 初始化res时提前添加了p个全0子列表,后续循环又追加了11的幂次整数值,导致最终结果存在冗余的全0项,且追加的内容是整数而非符合要求的数字子列表
  • 需要将11的i次幂的每一位数字拆分出来,再补0到长度为p,才能匹配预期输出格式

调整后代码

def pascal(p):
    res = []
    for i in range(p):
        # 转字符串后用空格拼接每一位,再用split拆分得到单数字字符串列表
        num_str_list = ' '.join(str(11 ** i)).split()
        # 转换为整数列表
        num_list = [int(x) for x in num_str_list]
        # 补0到长度为p
        num_list += [0] * (p - len(num_list))
        res.append(num_list)
    return res

p = 3
print(pascal(p))

运行上述代码输出结果为:
[[1, 0, 0], [1, 1, 0], [1, 2, 1]]

注意事项

基于11幂次的实现方式仅在p≤5时有效。当p>5时,11的幂次会出现两位及以上的数字,直接拆分每一位得到的结果会和帕斯卡三角的实际值不符,如果需要支持更大的p,建议改用相邻元素求和的常规帕斯卡三角实现方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 17:54:00