魔方阵又称纵横图,是一种n行n列、由自然数1~n×n组成的方阵,该方阵中的数符合以下规律:
- 方阵中的每个元素都不相等。
- 每行、每列以及主、副对角线上的个元素之和都相等。
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])
运行结果: