题解 | #蛇形矩阵#
蛇形矩阵
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()