蛇形矩阵python

简介: 蛇形矩阵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())
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站也叫极客李华。

相关文章
|
9月前
|
Python
python打印直角三角形
python打印直角三角形
149 3
|
9月前
|
算法 Python
Python判断素数
Python判断素数
|
9月前
|
人工智能 机器人 测试技术
【python】两数之和 python实现(详细讲解)
【python】两数之和 python实现(详细讲解)
|
2月前
|
Python
Python-素数
本文介绍了如何使用 Python 判断素数,并通过具体示例展示了求 100 以内及自定义范围内所有素数的方法。内容包括素数的定义、判断素数的底层逻辑和步骤,以及详细的代码演示。适合初学者参考学习。
|
5月前
|
Python
python 99乘法表
python 99乘法表
|
9月前
|
Python
1174: 绝对素数(python)
1174: 绝对素数(python)
|
9月前
|
存储 算法 Python
Python分解质因数
Python分解质因数
|
9月前
|
机器学习/深度学习 Python
599: 拉丁方阵(python)
599: 拉丁方阵(python)
|
9月前
|
Python
python写一个数独
python写一个数独
185 6
|
9月前
|
Python
用python画一个水仙花
用python画一个水仙花
288 2