题解 | 蛇形矩阵
蛇形矩阵
https://www.nowcoder.com/practice/649b210ef44446e3b1cd1be6fa4cab5e
n = int(input()) # 外循环控制行数,从1开始,方便表示行数 for i in range(1, n + 1): result = [] #存储每一行的数据 result.append(sum(range(i)) + 1) # 添加每一行的第一个元素 #内循环控制列数,从1开始,因为第一列已经存储了,从第二列开始根据规律填充数据 for j in range(1, n + 1 - i): result.append(result[j - 1] + (j + i) ) # 从第二列开始数据等于改行的前一列数据加上行数加上前一列的列数 print(" ".join(map(str,result)))
查看题目找规律:
1.第i行的第一个数为range(i)+1
2.第一行 1 3 6 10 每个数等于前一个数依次加为2 (可以转化为第 1 行加第 1 列,1+1), 3(可以转化为第 1 行加第 2 列,1+2) , 4 。即3=1+2, 6=3 +3 , 10=6+4
第二行 2 5 9 每个数等于前一个数依次加为3 (可以转化为第 2 行加第 1 列,2+1), 4(可以转化为第 2 行加第 2 列,2+2) 。即5=2+3, 9=5+4