[Python]蛇形矩阵

输入两个整数 n 和 m,输出一个 n 行 m 列的矩阵,将数字 1 到 n×m 按照回字蛇形填充至矩阵中。

具体矩阵形式可参考样例。

输入格式

输入共一行,包含两个整数 n 和 m。

输出格式

输出满足要求的矩阵。

矩阵占 n 行,每行包含 m 个空格隔开的整数。

数据范围

1≤n,m≤100

输入样例:

3 3

输出样例:

1 2 3
8 9 4
7 6 5

n,m=map(int,input().split(' '))
dx, dy = [0, 1, 0, -1], [1, 0, -1, 0]
ans = [[0 for i in range(m)]for j in range(n)]
x,y=0,0
t=0

for i in range(1,m*n+1):
  ans[x][y]=i
  if x+dx[t]<0 or x+dx[t]>=n or y+dy[t]<0 or y+dy[t]>=m or ans[x+dx[t]][y+dy[t]]>0: 
    t=(t+1)%4
  x,y=x+dx[t],y+dy[t]

for i in range(n):
    for j in range(m):
        print(ans[i][j], end = ' ')
    print()


评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×