python例题---5阶魔方阵

47 阅读1分钟

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.运行结果如下:

image.png