蛇形矩阵
输入两个整数 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()) res = [[0 for i in range(m)] for i in range(n)] # 需要时刻明白的是 x代表的是行号,y代表的是列号 # dx,dy表示的是上右下左的四个方向 # 往上走行号-1,列号不变 # 往右走行号不变,列号+1 dx, dy = [-1, 0, 1, 0], [0, 1, 0, -1] # 最开始x,y是从0开始,也就是左上角的第一个 # d为1默认的首先的顺序是从往右开始的 x , y, d = 0, 0, 1 # 跟题目要求 i是从1开始的到n*m for i in range(1, n * m + 1): res[x][y] = i a, b = x + dx[d], y + dy[d] # 当a,b到了边界之后或者此时res[a,b]不为0 就需要换方向了 # 这个时候需要改变的就是d了 if a < 0 or a >= n or b < 0 or b >= m or res[a][b] != 0: d = (d + 1) % 4 a, b = x + dx[d], y + dy[d]; x, y = a, b for i in range(n): for j in range(m): print(res[i][j], end=' ') print()
如果大家觉得有用的话,可以关注我下面的微信公众号,极客李华,我会在里面更新更多行业资讯,企业面试内容,编程资源,如何写出可以让大厂面试官眼前一亮的简历等内容,让大家更好学习编程,我的抖音,B站也叫极客李华。