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

如何在Python中将帕斯卡三角(Pascal's Triangle)居中打印为金字塔形

帕斯卡三角金字塔形打印解决方案

核心思路就是用最后一行的总长度作为整个金字塔的基准宽度,让每一行都按这个宽度居中对齐,就能从直角三角转成金字塔形。

修改后的完整代码

def comb(k,n):
    ans = 1
    if (k > n//2):
        k = n-k
    for i in range(k):
        ans *= (n-i)
        ans //= (i+1)
    return ans

def printPascal(n):
    x = []
    for row in range(n):
        arr = []
        for i in range (row + 1):
            arr.append(comb(i, row))
        x.append(arr)
    return x

n = eval(input("How many rows should there be [3-8]? "))
x = printPascal(n)

# 计算最大宽度:取最后一行转成空格分隔字符串后的长度
last_row_str = ' '.join(map(str, x[-1]))
max_width = len(last_row_str)

# 逐行居中打印
for row in x:
    row_str = ' '.join(map(str, row))
    print(row_str.center(max_width))

效果说明

比如输入n=5时,输出会是:

1    
   1 1   
  1 2 1  
 1 3 3 1 
1 4 6 4 1

逻辑解释

  1. 先把最后一行转成空格分隔的字符串,它的长度就是整个金字塔的最大宽度——因为最后一行是元素最多的行,自然也是最宽的。
  2. 遍历每一行时,同样把当前行转成空格分隔的字符串,调用center(max_width)方法让它在最大宽度范围内居中,再打印即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 08:18:10