题解 | 蛇形矩阵

蛇形矩阵

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

全部评论

相关推荐

04-28 19:31
门头沟学院 Java
真烦好烦真烦:可恶的二手车贩子,居然对我们门头沟学院的人这么没礼貌
点赞 评论 收藏
分享
03-26 13:44
南华大学 Java
在看面经的花生米很野蛮:这种情况下你当然要回答,你也是吗!!!!我超喜欢他的XXXXX
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务