python例题---5阶魔方阵:
1.代码如下:
def generate_magic_square(n):
# 创建n×n的全0矩阵用于占位
magic_square = [[0 for _ in range(n)] for _ in range(n)]
# 初始位置:第一行正中央
row, col = 0, n // 2
# 填充1到n×n的数字
for num in range(1, n * n + 1):
magic_square[row][col] = num
# 计算右上位置(行减1,列加1)
next_row = (row - 1) % n
next_col = (col + 1) % n
# 如果右上位置已有数字,则向下移动(行加1,列不变)
if magic_square[next_row][next_col] != 0:
row = (row + 1) % n
else:
row, col = next_row, next_col
return magic_square
def print_magic_square(magic_square):
# 打印魔方阵,每个数字占4位宽度,保持对齐
for row in magic_square:
for num in row:
print(f"{num:4}", end="")
print()
# 生成并打印5阶魔方阵
n = 5
magic = generate_magic_square(n)
print(f"{n}阶魔方阵:")
print_magic_square(magic)
2.运行结果如下: