2024华为OD机试真题-螺旋数字矩阵Python-C卷D卷-100分
创始人
2024-11-06 08:08:50
0

2024华为OD机试题库-(C卷+D卷)-(JAVA、Python、C++)

题目描述

疫情期间,小明隔离在家,百无聊赖,在纸上写数字玩。他发明了一种写法:

给出数字个数 n (0 < n ≤ 999)和行数 m(0 < m ≤ 999),从左上角的 1 开始,

按照顺时针螺旋向内写方式,依次写出2,3,....,n,最终形成一个 m 行矩阵。

小明对这个矩阵有些要求:

  • 每行数字的个数一样多
  • 列的数量尽可能少
  • 填充数字时优先填充外部
  • 数字不够时,使用单个 * 号占位

输入描述

两个整数,空格隔开,依次表示 n、m

输出描述

符合要求的唯一矩阵

用例1

输入

9 4

输出

1 2 3

* * 4

9 * 5

8 7 6

说明

9个数字写出4行,最少需要3列

考点

逻辑思维

解题思路

先计算出矩阵的列数,ceil(n/m)向上取整,然后将矩阵初始化为全*;然后根据规则,从左到右,从上到下,螺旋状从外到内的顺序,将从1开始递增的n个数字经过的坐标依次记录在数组中,未被填充到的坐标即为*;最后,按数组内记录的坐标,依次填充从1到n的n个数,即得到螺旋矩阵。

代码

python
n,m=list(map(int, input().split())) col=int(n/m) #列数 re=n%m #余数 if re>0:     col+=1  res=[] for i in range(m):     tmp=[]     for j in range(col):         tmp.append('*')     res.append(tmp)  t=1 #当前遍历到的数;从1递增遍历,从外圈向内 r=0 #r,c当前行列号 c=0 cmin=0 #当前最小列号 rmin=0 #当前最小行号 cmax=col-1 #当前最大列号 rmax=m-1 #当前最大行号 idxs=[] #依次存每个数的坐标 while t<=n:     if r==rmin and c<=cmax:         print(t)         idxs.append([r,c])        

相关内容

热门资讯

wpk真的有外挂!德州wpk辅... 自定义系统规律,只需要输入自己想要的开挂功能,一键便可以生成出微扑克专用辅助器,不管你是想分享给你好...
wepoke辅助机器人(透视)... wepoke辅助机器人(透视)wepoke游戏辅助工具(详细辅助wepoke教程)总是存在有挂(攻略...
微扑克系统发牌规律(微扑克)微... 微扑克系统发牌规律(微扑克)微扑克职业代打(透视)其实真的有挂(详细辅助2025版教程);在进入微扑...
aapoker辅助工具存在!a... aapoker辅助工具存在!aapoker俱乐部,(aapoker操作)原先是有挂(详细辅助系统教程...
一秒答解!聚星扑克进去后怎么操... 一秒答解!聚星扑克进去后怎么操作,aapoker发牌机制,存在挂教程(果然是有挂)1、很好的工具软件...
wpk外挂!wpk辅助nzt(... wpk外挂!wpk辅助nzt(透视)外挂透视挂辅助代打(本然真的是有挂);大神普及一款德州ai内幕,...
wepoke ai辅助(透视)... wepoke ai辅助(透视)wopoker轻量版外挂(详细辅助2025版教程)一直有挂(可靠黑科技...
微扑克ai辅助工具(微扑克)微... 微扑克ai辅助工具(微扑克)微扑克app(透视)一直真的是有挂(详细辅助AA德州教程)1、微扑克ai...
aapoker俱乐部!aapo... 此外,数据分析德州(aapoker俱乐部)辅助神器app还具备辅助透视行为开挂功能,通过对客户aap...
重磅来袭!wepower让系统... 重磅来袭!wepower让系统发好牌,wepoke模拟器,攻略教程(切实有挂)1、不需要AI权限,帮...