前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >蛇形矩阵python

蛇形矩阵python

作者头像
GeekLiHua
发布2025-01-21 14:46:11
发布2025-01-21 14:46:11
5000
代码可运行
举报
文章被收录于专栏:JavaJava
运行总次数:0
代码可运行

蛇形矩阵

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

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

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

输出格式 输出满足要求的矩阵。

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

数据范围 1≤n,m≤100 输入样例: 3 3 输出样例:

代码语言:javascript
代码运行次数:0
复制
1 2 3
8 9 4
7 6 5

提交代码

代码语言:javascript
代码运行次数:0
复制
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()
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-02-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 蛇形矩阵
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档