import sys
def snake_triangle(n):
    for i in range(1,n+1) :
        for j in range(i,n+1) :
    	# 输出的公式是转化后的,其实也可以写去括号前,int()的作用是将结果转化成整型,因为计算结果是有小数的,end = ' '作用是将内层循环的计算结果以空格隔开
            print(int(((j+j**2)/2)-i+1),end = ' ')
    # 一次循环结束后打印空,用作换行
        print()
    
for line in sys.stdin:
    a = int(line.rstrip())
    snake_triangle(a)


第一行的规律符合累加求和公式;(n+1)n/2

第二行的规律则是第一行的 ((n+1)n/2) - 1

第三行的规律则是第一行的 ((n+1)n/2) - 2

第四行的规律则是第一行的 ((n+1)n/2) - 3

当i = 1 时,j = 1,2,3,4 进入循环;

当i = 2 时,j = 2,3,4

当i = 3 时,j = 3,4

当i = 4 时,j = 4

抄的作业还没完全消化:https://blog.nowcoder.net/n/beac65b487a848ea9d8c65ef812d154f?f=comment