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

Python实现杨辉三角时输出含多余零,求去除方法

解决杨辉三角输出带零的问题

嘿,我明白你遇到的问题啦——你用n×n的全零数组来存储杨辉三角,但实际上杨辉三角的第i行(从0开始计数)只有i+1个有效元素,剩下的位置都是初始化的0,所以输出时会把这些零也打出来。咱们有两种简单的办法解决这个问题:

方案一:修改输出逻辑,只打印有效元素

不用改数组的创建方式,只需要调整输出的循环范围,让每一行只打印前i+1个元素就行:

n = int(input("range: "))
t = [([0] * n) for i in range(n)]
t[0][0] = 1
for i in range(1, n):
    t[i][0] = 1
    t[i][i] = 1
    for j in range(1, i):
        t[i][j] = t[i - 1][j] + t[i - 1][j - 1]
# 修改这里的输出循环
for i in range(n):
    for j in range(i + 1):  # 只遍历到第i个元素,对应行的有效长度
        print(t[i][j], end="")
    print("")

运行后输入5,输出就变成:

1
11
121
1331
14641

方案二:优化数组结构,只存储有效元素

如果不想浪费空间存那些零,咱们可以直接给每一行创建对应长度的列表,这样数组里根本不会有零:

n = int(input("range: "))
t = []
t.append([1])  # 初始化第0行
for i in range(1, n):
    current_row = [1]  # 每行开头都是1
    # 计算中间的元素
    for j in range(1, i):
        current_row.append(t[i-1][j] + t[i-1][j-1])
    current_row.append(1)  # 每行结尾都是1
    t.append(current_row)
# 输出每一行
for row in t:
    print(''.join(map(str, row)))

这个方案更高效,也更贴合杨辉三角的结构,输出结果同样干净。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:17:47