python螺旋数字矩阵

news/2024/7/24 12:32:30 标签: python, 矩阵, 算法

python螺旋数字矩阵

给出数字个数n,输出1-n (0<n ≤999)和行数m (0<m ≤ 999),从左上角的1开始,按照顺时针螺旋向内写方式,依次写出2,3.….,最终形成一个m行矩阵
1.每行数字的个数一样多
2.列的数量尽可能少
3.填充数字时优先填充外部
4.数字不够时,使用单个*号占位

python">def getRes(n, m):
    num_size = n
    rows = m

    cols, _ = divmod(n, m)
    cols = cols + 1 if _ else cols

    res = [['*'] * cols for _ in range(rows)]
    i, j = 0, 0
    directions = [(0, 1), (1, 0), (0, -1), (-1, 0)]
    direction_index = 0
    for num in range(num_size):
        number = num + 1
        res[i][j] = str(number)
        nxt_i, nxt_j = directions[direction_index][0] + i, directions[direction_index][1] + j
        if not (0 <= nxt_i < rows and 0 <= nxt_j < cols and res[nxt_i][nxt_j] == '*'):
            direction_index = (direction_index + 1) % 4
        i, j = i + directions[direction_index][0], j + directions[direction_index][1]
    for values in res:
        print('\t'.join(values))


getRes(9, 4)

n=9,m=4

n=17,m=6


http://www.niftyadmin.cn/n/5413931.html

相关文章

docker runc 文件描述符泄漏导致容器逃逸漏洞(CVE-2024-21626)

这篇博客首先要指出的是正确runc的漏洞修复方式&#xff0c;另外就是说明当你重启docker时遇到了问题时应该如何正确的解决。 首先正确的升级runc的方式如下 runc升级当你重启docker失败时 首先应该定位的地方是通过查看 /var/log/messages,定位到具体导致docker启动失败的原因…

MS5188N——16bit、8 通道、500kSPS、 SAR 型 ADC

产品简述 MS5188N 是 8 通道、 16bit 、电荷再分配逐次逼近型模数 转换器&#xff0c;采用单电源供电。 MS5188N 拥有多通道、低功耗数据采集系统所需的所有 组成部分&#xff0c;包括&#xff1a;无失码的真 16 位 SAR ADC &#xff1b;用于将输入配 置为单端输入…

人机交互中的定向、定性、定量

在人机交互中&#xff0c;定向、定性和定量分析都扮演着重要的角色&#xff0c;帮助设计师更好地理解用户需求、优化系统设计&#xff0c;并评估系统的性能和效果。这种综合的分析方法有助于打造更符合用户期望、更高效的人机交互系统。 在人机交互中&#xff0c;定向&#xff…

Linux报错排查-安装PHP的remi库报错

Linux运维工具-ywtool 目录 一.BC-Linux系统1.1 报错提示1.2 解决 二.CentOS/CentOS Steam系统2.1 报错提示2.2 解决 一.BC-Linux系统 测试系统用的是:BigCloud Enterprise Linux release 8.2 1.1 报错提示 [rootecs-11973640 ~/php]# yum install -y /usr/local/ywtools/r…

STM32控制蜂鸣器

一、功能简介 在一些设备仪表中&#xff0c;都需要蜂鸣器来发出提示音或者按键操作的声音&#xff0c;这里就用到蜂鸣器。 二、实现方法 1、蜂鸣器的分类为有源蜂鸣器和无源蜂鸣器&#xff0c;其区别是有没有振动源&#xff0c;这里我们常用有源蜂鸣器。 2、控制电路如下&am…

Python Tkinter GUI 基本概念

归纳编程学习的感悟&#xff0c; 记录奋斗路上的点滴&#xff0c; 希望能帮到一样刻苦的你&#xff01; 如有不足欢迎指正&#xff01; 共同学习交流&#xff01; &#x1f30e;欢迎各位→点赞 &#x1f44d; 收藏⭐ 留言​&#x1f4dd;如果停止&#xff0c;就是低谷&#xf…

【研究生复试】计算机软件工程人工智能研究生复试——资料整理(速记版)——计算机组成原理

1、JAVA 2、计算机网络 3、计算机体系结构 4、数据库 5、计算机组成原理 6、软件工程 7、大数据 8、英文 自我介绍 5. 组成原理 1. 计算机系统概论 1. 发展历史 早期计算器: 算盘->算筹-> 计算尺(工程师的身份象征)-> 机械计算机: 图灵:计算机世界的理论基…

perf的安装与迁移

前言 perf是性能优化很重要的工具之一&#xff0c;本篇博客就来看一下perf的安装以及遇到的问题。 嵌入式驱动学习专栏将详细记录博主学习驱动的详细过程&#xff0c;未来预计四个月将高强度更新本专栏&#xff0c;喜欢的可以关注本博主并订阅本专栏&#xff0c;一起讨论一起学…