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

生成反向数字图案遇问题:无法得到预期输出结果

数字图案生成问题

我尝试生成指定数字图案,但输出不符合预期:

预期图案

2
43
765
111098
111098
765
43
2

(注:你提供的预期第四行1110198应为笔误,正确应为111098)

现有代码

n=int(input("enter the number"))
for i in range(1, n):
    for j in range(i,0,-1):
        print(j+1, end=" ")
    print()
for i in range(n-1,0,-1):
    for j in range(i,0,-1):
        print(j+1, end=" ")
    print()

当前实际输出

2 
3 2
4 3 2
5 4 3 2
5 4 3 2
4 3 2
3 2
2

修正方案

你的代码输出的是固定规则的递减数字,但预期图案的数字是累加递增后倒序拼接,且每行起始数字是前一行末尾数字加1,同时输出不能有空格。

修改后的代码:

n = int(input("enter the number"))
current_num = 2
row_records = []

# 生成上半部分图案
for row in range(1, n):
    # 从current_num开始,倒序取row个数字
    current_row = [str(current_num - k) for k in range(row)]
    row_str = ''.join(current_row)
    print(row_str)
    row_records.append(row_str)
    # 更新下一行的起始数字:当前起始 + row + 1
    current_num += row + 1

# 生成下半部分对称图案
for line in reversed(row_records):
    print(line)

逻辑说明

  1. 数字规律:每行起始数字是前一行起始数 + 当前行号 + 1,比如:
    • 第1行起始2,第2行起始=2+1+1=4
    • 第2行起始4,第3行起始=4+2+1=7
    • 第3行起始7,第4行起始=7+3+1=11
  2. 行内容生成:每行从起始数字开始,倒序取对应行数的数字,拼接成无空格的字符串。
  3. 对称输出:把上半部分的行记录倒序输出,得到下半部分的对称图案。

测试输入n=5时,输出完全符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 09:35:07