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

Python实现X形数字图案:先递增后递减的需求及问题排查

Python X形图案数字填充问题解决

你当前的问题是X形对角线上的数字没有实现先增后减的效果,原因在于直接使用行号rows作为输出值,导致数字从0到n-1单调递增。要实现0 1 2 1 0的序列,需要计算每行到矩阵上下边缘的最小距离,这个值就是该行应显示的数字。

修正后的代码

n = int(input("Enter total rows"))
# n=5
for rows in range(n):
    for cols in range(n):
        if rows == cols or rows + cols == n - 1:
            # 计算当前行到边缘的最小距离,实现先增后减
            print(min(rows, n - 1 - rows), end="")
        else:
            print(" ", end="")
    print()

关键说明

  • 以n=5为例:
    • 第0行和第4行,min(0,4)与min(4,0)结果都是0
    • 第1行和第3行,min(1,3)与min(3,1)结果都是1
    • 第2行(中间行),min(2,2)结果是2
      最终就能得到预期的0 1 2 1 0序列。

输出示例(n=5)

0   0
 1 1
  2
 1 1
0   0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 17:05:18