咱比较笨,找不到数字之间的规律,只能按照蛇形矩阵本来的规则来。

把蛇形矩阵旋转45度其实就是个金字塔,最上面是1,最右下方是最大的数,即10

原本:

1 3 6 10

2 5 9

4 8

7

旋转一下:

1

2 3

4 5 6

7 8 9 10

list1就是旋转后的矩阵

然后可以发现旋转后的矩阵里每一行的最后一个元素,就是蛇形矩阵中第一行的元素,倒数第二个元素就是第二行的,依次类推。

while 1:
    try:
        n = int(input())
        list1 = []
        for i in range(1,n+1):
            list1.append([0]*i)
        a = 0
        for i in range(n):
            for j in range(i+1):
                a = a + 1
                list1[i][j]=a
        list2,she = [],[]
        for i in range(1,n+1):
            for line in list1:
                if line:
                    list2.append(line.pop(-1))
            she.append(" ".join(map(str,list2)))
            list2 = []
        for i in she:
            print(i)
    except:
        break