所以我正在尝试制作一个函数,它接受一个整数'n'并返回一个列表列表,这完全是为了制作一个“魔方”(从顶部中心的 1 开始,然后向右走,然后直到下一个,都带有“环绕”效果)。无论如何,我觉得我的代码非常笨重,但我也无法测试它是否有效,因为它没有......我收到一条list index out of range
消息msq[row][col] = v
。这是代码:
def magicsquare(n):
msq = [[0 for c in range(n)] for r in range(n)]
row, col= n-1, (n-1)/2
M = n*(n+1)/2
v, r, c = 1,0,0
msq[row][col] = v
while v != M:
v= v+1
if row+1 >= n:
r = 0
else: r = row + 1
if (col+1) < n:
c = col + 1
else: c = 0
if msq[r][c]:
if (row+1) < n:
r = row+1
c = col
grid[r][c] = v
row = r
col = c
return magicsquare(n)
哦,我要通过的测试是magicsquare(3) == magicsquare([[4, 3, 8], [9, 5, 1], [2, 7, 6]])
。任何帮助表示赞赏,谢谢!!!!!!!