蓝桥杯ACM算法题:蛇行矩阵 ------ python编程

蓝桥杯ACM算法题:蛇行矩阵 ------ python编程

题目
蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。
输入:
5
输出:
1 3 6 10 15
2 5 9 14
4 8 13
7 12
11

分析:

  1. 这是一个倒的半三角
  2. 每行和列中数之间有规律变化
  3. 每行之间的变化有区别

这一道花了几个小时,先编程了一个倒半三角,想再写数字但无从下手,就找答案发现都看不懂,上百度终于找到一个和我做的有点相像的答案,我将它的代码一步一步地分析,下面是代码原处
代码原处

代码分析:
a=1 定义第一个数的值
row=int(input()) 输入行数
for i in range(1,row+1): 遍历行数1-5行
begin=a 开头等于a的值,a的值会变化
if(beginrow):如果开头等于最后一行就直接输出值
print(begin)
else:如果开头不等于最后一行输出值再输出一个空格
print(begin,end=" ")
for j in range(i+1,row+1):遍历列数,由于每行第一列都输出了只需要输出剩下列的值
begin+=j每列的值由前一个数加这个数的列得来(比如第一行第二个数是3第三个数等于3加列数3=6)
if(j
row):如果列数是最后一列就直接输出值
print(begin)
else:如果不是最后一列输出值再输出空格
print(begin,end=" ")
a+=i每行第一个数的值(由前一个数加上它的行数,比如第三行是4第四行就是4+3=7)

解析有些乱可以复制粘贴到编辑器中看

列数的值容易让人晕
列数的遍历是
2 3 4 5
3 4 5
4 5
5

遍历次数和数字无关,遍历四个数就是四次(这个我一开始没搞懂所以用了很多时间)

我总以为是
2 3 4 5
2 3 4
2 3
2

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值