如何编写代码实现指定的连续数字分层排列输出图案?
实现数字金字塔图案的思路与代码
核心规律分析
先拆解图案的关键特征:
- 第
i行(从1开始计数)包含i个连续递增的数字 - 所有数字从1开始连续排列,无中断
- 每行的起始数字 = 前
i-1行的数字总数 + 1,前i-1行总数是1+2+...+(i-1) = i*(i-1)//2,因此起始数为i*(i-1)//2 + 1
Python 实现代码
# 定义要生成的行数,示例为5行 total_rows = 5 current_num = 1 for row in range(1, total_rows + 1): # 每行打印row个连续数字 for num in range(current_num, current_num + row): print(num, end=' ') # 换行进入下一行 print() # 更新下一行的起始数字 current_num += row
代码解释
current_num用于跟踪当前行的起始数字,初始值为1- 外层循环控制总行数,从1遍历到
total_rows - 内层循环负责打印当前行的所有数字,范围是
current_num到current_num + row - 每行打印完成后换行,并将
current_num加上当前行的数字个数,作为下一行的起始值
无需跟踪起始数的写法
如果不想用变量维护起始数字,也可以直接通过行数计算起始值:
total_rows = 5 for row in range(1, total_rows + 1): start_num = row * (row - 1) // 2 + 1 for num in range(start_num, start_num + row): print(num, end=' ') print()
两种写法都能输出目标图案:
1
2 3
4 5 6
7 8 9 10
11 12 13 14 15
内容的提问来源于stack exchange,提问作者kolaton277
相关产品推荐
相关产品推荐

