我正在尝试使用Python 3.7填充多维数组(n*m大小)以对角蛇形模式:
1 3 4 10 11 21
2 5 9 12 20 22
6 8 13 19 23 30
7 14 18 24 29 31
15 17 25 28 32 35
16 26 27 33 34 36
我有一个针对 n x n
大小的函数,它可以正常工作。但是对于 n x m
大小,它会返回:
1 3 4 10 14
2 5 9 15 20
6 8 16 19 19
7 17 18 20 21
我的代码:
def method1(i, j, n, m):
num = i+j
summ = num * (num + 1) >> 1
s = n * m
if num > n-1:
t = 2*(n-1) - (i+j) + 1
s -= t*(t+1) >> 1
if num & 1:
if num > n-1:
return s + (n-i)
else:
return summ + j+1
if num > n-1:
return s + (n-j)
else:
return summ + i+1
for i in range(n):
for j in range(m):
print(method1(i, j, n, m), end=" ")
print('\n')
我做错什么了吗? P.S.你的回答可以用任何语言。