题解 | #蛇形矩阵#

蛇形矩阵

https://www.nowcoder.com/practice/649b210ef44446e3b1cd1be6fa4cab5e

规律
            每一行数字的个数4 3 2 1
            一共的个数:每一行个数相加  /  最后一个数字
            每一行的最后一个数字  是 """

n = int(input())


lis = []
for i in range(n, 0, -1):
    lis.append([j for j in range(i)])# list1.append([0]*i)直接填0不用循环
# print(lis)
# [[0, 1, 2, 3, 4], [0, 1, 2, 3], [0, 1, 2], [0, 1], [0]]

count = (n+1)*n // 2
# print(count)
n_lis = len(lis) 
lis_m = []

for i in range(count, 0, -1):
    lis_m.append(i)
# print(lis_m)

for j in range(-1, -n-1, -1):# 控制列表的倒数第几个
    for i in range(n):# 控制是哪个列表
        if -j > len(lis[i]):
            continue
        else:
            lis[i][j] = lis_m.pop(0) # 控制列表初始化数字
# print(lis)

for i in lis:
    for j in i:
        print(str(j) + " ",end="")
    print()


全部评论

相关推荐

2 收藏 评论
分享
牛客网
牛客企业服务