Python魔方

43 阅读1分钟

魔方阵又称纵横图,是一种n行n列、由自然数1~n×n组成的方阵,该方阵中的数符合以下规律:

  1. 方阵中的每个元素都不相等。
  2. 每行、每列以及主、副对角线上的个元素之和都相等。
n = 5
magic_square = [[0 for x in range(n)]
                for y in range(n)]
row, col = 0, n//2
for num in range(1, n*n+1):
        magic_square[row][col] = num
        next_row = (row - 1) % n
        next_col = (col + 1) % n
        if magic_square[next_row][next_col] != 0:
            row = (row + 1) % n
        else:
            row,col = next_row,next_col
for row in magic_square:
    print([f"{num}" for num in row])
    print(magic_square[2][4])

['17', '24', '1', '8', '15'] 22

['23', '5', '7', '14', '16'] 22

['4', '6', '13', '20', '22'] 22

['10', '12', '19', '21', '3'] 22

['11', '18', '25', '2', '9'] 22