python——魔方阵

35 阅读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:2d}" for num in row])

运行结果:

image.png