Python小案例 关于排列问题 求指导

输入一个数字 然后按照图片排列出来
并求和

img

for循环把这些放到一个列表里,排序后再相加就行

这个是求对角线的和,i==j就是正对角线的和,i+j==length-1就是些对角线的和。

代码示例如下,有帮助望采纳~

import numpy as np
n = int(input())
list1 = []
for i in range(n):
    if i % 2:
        list1.extend([x for x in range(i*n+n, i*n, -1)])
    else:
        list1.extend([x for x in range(i*n+1, i*n+n+1, 1)])
    #print(list1)

list2 = np.array(list1).reshape((n, n))
print(list2)
print(np.sum(list2.diagonal()))
# print(list2[:, ::-1])
print(np.sum(list2[:, ::-1].diagonal()))

img