题解 | #蛇形矩阵#
蛇形矩阵
https://www.nowcoder.com/practice/649b210ef44446e3b1cd1be6fa4cab5e
n = int(input()) lists = [] for i in range(n): # 先初始化一个二维列表,当作容器 ls = [] for j in range(n): ls.append(0) lists.append(ls) counter = 1 # 记录每一步的值 i, j = 0, 0 # 从0,0开始 while True: # print(i,j) lists[i][j] = counter # 给每一步附上值 counter += 1 # 默认斜向上移动 i -= 1 j += 1 if i == -1 and j == n: # 在草稿纸上手写几个蛇形矩阵会发现,-1,n是结束位置 break # 所以当默认斜向上移动后,到达这个位置就退出循环 if i == -1: # 同样会发现规律,当按照默认斜向上走一步后,到达的是i等于-1的位置,意味着需要换行,并且下一行的i,就是当前的j i = j j = 0 for i in range(n): # 按着蛇形走完后,则输出 for j in range(n): if lists[i][j] != 0: print(lists[i][j], end=' ') print()