怎么用Python写出一个魔方阵
时间: 2024-06-01 11:06:00 浏览: 135
魔方阵是一个方阵,其中每行、每列以及对角线上的元素之和相等。以下是一个Python实现的魔方阵程序:
```python
def magic_square(n):
# 初始化一个n x n的零矩阵
magic = [[0 for x in range(n)] for y in range(n)]
# 初始化第一个数的位置
i = n // 2
j = n - 1
# 开始填充魔方阵
num = 1
while num <= (n * n):
# 处理边界问题
if i == -1 and j == n:
j = n - 2
i = 0
else:
if j == n:
j = 0
if i < 0:
i = n - 1
# 如果当前位置已经有数了,就往下移一行
if magic[i][j]:
j -= 2
i += 1
continue
else:
magic[i][j] = num
num += 1
# 处理i和j的增量
j += 1
i -= 1
# 输出魔方阵
print("Magic Square for n =", n)
print("Sum of each row or column", n * (n * n + 1) / 2, "\n")
for i in range(0, n):
for j in range(0, n):
print('{:2d}'.format(magic[i][j]), end=' ')
print()
# 测试魔方阵程序,生成3 x 3的魔方阵
magic_square(3)
```
阅读全文