当n为10时:
1 3 4 10 11 21 22 36 37 55
2 5 9 12 20 23 35 38 54 56
6 8 13 19 24 34 39 53 57 72
7 14 18 25 33 40 52 58 71 73
15 17 26 32 41 51 59 70 74 85
16 27 31 42 50 60 69 75 84 86
28 30 43 49 61 68 76 83 87 94
29 44 48 62 67 77 82 88 93 95
45 47 63 66 78 81 89 92 96 99
46 64 65 79 80 90 91 97 98 100
def matrix(n):
res = [[1]*n for i in range(n)]
k = 1
for i in range(1,2*n-1):
for j in range(max(0,i-n+1),min(n,i+1)):
k += 1
if i%2:
res[i-j][j]=k
else:
res[j][i-j]=k
return res
def output(res):
for i in res:
print(*i)
output(matrix(10))