【发布时间】:2022-12-04 13:48:14
【问题描述】:
一个篮子以矩阵的形式给你。如果矩阵的大小为 N x N ,那么您可以放入篮子每个槽中的鸡蛋数量范围为 1 到 N2 。你的任务是把鸡蛋放在篮子里,使矩阵的每一行、每一列和对角线的总和保持不变
此代码仅适用于奇数,但不适用于偶数。
这是我试过但没有用的代码 `
def matrix(n):
m = [[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 m[int(i)][int(j)]:
j = j - 2
i = i + 1
continue
else:
m[int(i)][int(j)] = num
num = num + 1
j = j + 1
i = i - 1
print ("Sum of eggs in each row or column and diagonal ",n * (n * n + 1) / 2, "\n")
for i in range(0, n):
for j in range(0, n):
print('%2d ' % (m[i][j]),end = '')
if j == n - 1:
print()
n=int(input("Number of rows of matrix:"))
matrix(n)
`
【问题讨论】:
-
有一个简单的公式可以创建一个奇数边的幻方,当边是偶数时就不起作用了。您显然正在使用该算法。快速谷歌搜索应该也能帮助您处理偶边正方形。
标签: python python-3.x matrix computer-science magic-square