1050. 螺旋矩阵(25) python篇

新手学易语言的请看这里!! 易语言新手必看 1. 易语言介绍 易语言是一个自主开发,适合国情,不同层次不同专业的人员易学易用的汉语编程语言。易语言降低了广大电脑用户编程的门槛,尤其是根本不懂英文或者英文了解很少的用户,可以通过使用本语言极其快速地进入Windows程序编写的大门。易语言汉语编程环境是一个支持基于汉语字、词编程的、全可视化的、跨主流操作系统平台的编程工具环境;拥有简、繁汉语以及英语、日语等多语种版本;能与常用... 阅读详情

1050. 螺旋矩阵(25)

时间限制
150 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue

本题要求将给定的N个正整数按非递增的顺序,填入“螺旋矩阵”。所谓“螺旋矩阵”,是指从左上角第1个格子开始,按顺时针螺旋方向填充。要求矩阵的规模为m行n列,满足条件:m*n等于N;m>=n;且m-n取所有可能值中的最小值。

输入格式:

输入在第1行中给出一个正整数N,第2行给出N个待填充的正整数。所有数字不超过104,相邻数字以空格分隔。

输出格式:

输出螺旋矩阵。每行n个数字,共m行。相邻数字以1个空格分隔,行末不得有多余空格。

输入样例:
12
37 76 20 98 76 42 53 95 60 81 58 93
输出样例:
98 95 93
42 37 81
53 20 76
58 60 76
import math
k=int(input())                    #k为整数的个数
num =list(map(int,input().split()))
if k==1:                          #如果只有一个数,则直接输出
    print(num[0])
    exit()
num.sort(reverse = True)         #对数据排序
num =list(map(str,num))
if math.sqrt(k)%1==0:             #如果是完全2次方的数
    m=int(math.sqrt(k))
else:                             #否则,行数等于不小于根号n的最小整数
    m =int(math.sqrt(k)+1)
while(k%m!=0):
    m+=1
n=k//m
matrix=[[0 for i in range(n)] for i in range(m)]   #建立m行n列的矩阵,用于存储数据
U,D,L,R=0,m-1,0,n-1                 #设置上,下,左,右边界,顺时针一圈一圈的存储数据到矩阵中
i=0
j=0
x=0
while(x<k):                        #已经填充的数的个数应小于总个数
    while(j<R and x<k):            #横向上从左至右输出
        matrix[i][j]=num[x]
        j+=1
        x+=1
    while(i<D and x<k):            #纵向上从上往下输出
        matrix[i][j]=num[x]
        i+=1
        x+=1
    while(j>L and x<k):            #横向上从右至左输出
        matrix[i][j]=num[x]
        j-=1
        x+=1
    while(i>U and x<k):            #纵向上从下向上输出
        matrix[i][j]=num[x]
        i-=1
        x+=1
    U,D,L,R=U+1,D-1,L+1,R-1        #每次从逐渐向内圈缩小
    i+=1
    j+=1
    if x==k-1:                     #当到最后一个数时,特殊对待
        matrix[i][j]=num[x]
        x+=1
for a in matrix:                    #输出矩阵
    print(" ".join(a)) 


OpenCV机械臂手眼标定 这篇文章总结了手眼标定的原理,利用OpenCV自带的函数套用参数即可完成眼在手上和眼在手外两种标定。 阅读详情

相关推荐

非易失存储器读写

24C256、IIC_SCL、IIC_SDA

CT_1104的专栏 2986

(python 3)1050 螺旋矩阵 (25分)

1050螺旋矩阵(25分) 本题要求将给定的N个正整数按非递增的顺序,填入“螺旋矩阵”。所谓“螺旋矩阵”,是指从左上角第 1 个格子开始,按顺时针螺旋方向填充。要求矩阵的规模为m行n列,满足条件:m×n等于N;m≥n;且m−n取所有可能值中的最小值。 输入格式: 输入在第 1 行中给出一个正整数N,第 2 行给出N个待填充的正整数。所有数字不超过10​4​​,相邻数字以空格分隔。 输出格式: 输出螺旋矩阵。每行n个数字,共m行。相邻数字以 1 个空格分隔,行...

Hanlin的博客 566

osgEarth shapefile矢量生成三维模型案例 2.boston.earth

osgEarth shapefile矢量生成三维模型案例 2.boston.earth 波士顿城市建筑、路灯、公园、道路shp矢量生成三维模型案例。

qq_24934183的博客 3543

1050 螺旋矩阵 Python实现

1050螺旋矩阵(25分) 本题要求将给定的N个正整数按非递增的顺序,填入“螺旋矩阵”。所谓“螺旋矩阵”,是指从左上角第 1 个格子开始,按顺时针螺旋方向填充。要求矩阵的规模为m行n列,满足条件:m×n等于N;m≥n;且m−n取所有可能值中的最小值。 输入格式: 输入在第 1 行中给出一个正整数N,第 2 行给出N个待填充的正整数。所有数字不超过10​4​​,...

BTboay 1993

深入解析 ReDoc:从零构建高性能 API 文档的终极指南

ReDoc 是一个强大的开源工具,用于将 OpenAPI 规范转换为高质量、响应式的 API 文档。本文详细介绍了如何使用 ReDoc 构建和自定义 API 文档,包括如何编写支持 OpenAPI 的 API 注解、配置 HTML 页面以加载文档,以及如何利用 ReDoc 的高级功能进行定制。通过实例代码,您将学会如何灵活地展示 API 文档,提升用户体验。无论是初学者还是经验丰富的开发者,都能从本文中获得实用的技巧与方案,帮助快速搭建符合需求的 API 文档界面。

楠搏万的博客 4626

Unity UI适配实战:从Canvas Scaler到主流游戏适配方案解析

本文深入解析Unity UI适配的核心技术,重点介绍Canvas Scaler组件的关键参数如Reference Resolution和Screen Match Mode,并提供主流游戏适配方案实战分析。通过九宫格拉伸、动态调整等技巧,帮助开发者解决多设备适配难题,提升游戏UI在不同分辨率下的表现。

weixin_29001419的博客 972

1050 螺旋矩阵 (25 分) python

这道题写了非常非常久,主要是不懂数组的基本方法。先输出一个基础数组,后续不断更改其中对应位置的数据,显得省力又轻松。而不是将list来回倒,左右添加元素。这道题第二个关键点是-循环,先输出外围,再输出次外围,以此类推,注意不断改变起始点的位置。注意内围里只有一个元素,一个竖行等个别特殊情况即可。先输出外围,再输出次外围。本来想用迭代的方法,但是数组在函数中的传递,显得并不轻松,不好处理。 import math a = int(input()) b = [int(i) for i in input().sp

Barthes0131的博客 231

【运动规划算法项目实战】全覆盖分区算法

全覆盖规划在机器人学领域具有重要意义,其应用场景涵盖了自动农场、扫地机器人、扫描监视无人机等多个领域。该问题的核心目标是使机器人能够从指定起点出发,规划一条避开障碍物、同时路径尽可能短的轨迹,从而实现对特定区域的全面覆盖。在实际应用中,全覆盖规划的成功实现对于提高机器人在各类环境中的工作效率至关重要。这一问题的解决涉及到高效的路径规划和规划区域分解技术。其中,梯形单元分解算法是一种常用分区的技术,过将地图上需要规划的区域进行分区,采用梯形分解的方式,可以更好地应对复杂环境。全覆盖算法规划流程。

xiewf的博客 1万+

【PAT_Python解】1050 螺旋矩阵

多学习其他大佬的AC代码!

新时代先锋的博客 369

使用Simulink来模拟多旋翼无人机在风扰动条件下的飞行情况,并分析其稳定性

本教程详细介绍了使用Simulink进行多旋翼无人机风扰动稳定性分析的完整流程。首先构建包含飞行器动力学模型、控制系统和环境模拟模块的系统框架,重点讲解简化动力学方程的实现方法。随后指导设计PID控制器来维持姿态稳定,并添加随机风扰动模型模拟环境干扰。通过设置输入信号和输出显示,最终实现对不同风速条件下无人机控制性能的评估。该实例为无人机控制系统设计提供了实用的仿真方法,强调利用MATLAB工具进行可视化分析和参数优化,以提高系统抗干扰能力和稳定性。

amy_mhd的博客 421

电磁场仿真软件:COMSOL Multiphysics_(17).时域与频域分析

时域和频域分析是电磁场仿真中非常重要的两种方法,每种方法都有其独特的应用场景和优势。时域分析适用于瞬态响应和宽带信号的分析,而频域分析则适用于稳态响应和窄带信号的分析。在COMSOL Multiphysics中,通过合理设置物理场接口、材料属性、边界条件、网格划分和求解器,可以高效地进行这两种分析,并通过傅里叶变换将时域结果转换为频域结果,进一步拓展仿真应用的范围。合理的性能优化措施,如网格划分优化和并行计算,可以显著提高仿真的效率和准确性。

kkchenjj的博客 1976

用python来解 PAT 1050螺旋矩阵-25-满分无超时

根据题意:给定N个整数,按照非递增的顺序填充进m行n列的螺旋矩阵(左上角开始螺旋),要求m,n满足:m×n等于N;m≥n;且m−n取所有可能值中的最小值。 先分析,这个题目大概分两个步骤:先求m,n,再进行螺旋填充,我的代码分三步,求出m,n后先生成了一个m行n列的全0矩阵,然后再进行填充。 我的求m,n的方法是用的二分法加循环,但是这种方法会超时,因为计算次数太多,所以我改用先求根的方法,比二分法简单太多了,至于生成全0矩阵,两个for循环就ok了,当然也可以直接用列表生成式,最后填充才是最难....

pythonuser1的博客 487

YOLOv8 模型进化全解析:百种创新模块集成方法与实战部署指南(附资料链接)

动态网络 | DeformableConv/DynamicHead| +2.8% || 轻量化卷积 | GhostConv/MobileConv | +1.2% || 多尺度融合 | AFPN/ASFF | +3.5% || 注意力机制 | CA/EMA/SimAM | +1.8-4.2% |

FJN110的博客 111

请大家注意啦!!

       大家好!我想建一个网站,可是一直找不到和我合作的人,在此,我在我的主页上发出通知.       如果有人想我合作建一个网站,请和我联系,我的联系方式是:              E-mail:klxq_02@163.com               QQ:837800408       我在此真诚的欢迎你的加入.      在此我先介绍一下我的网站思路: 

cnim549405865的专栏 716

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

请教一个问题!!Delphi高手们请帮忙!!

各位高手:  大家好!小弟是个Delphi爱好者,最近想编个填表软件,但遇到难点想请教:如何实现检测到IE中的表格呢?我曾用GetClassName函数,但测到的IE都是Intermet Explorer_Server。  请帮忙一下吧,小弟感激不敬!不过我觉得用上面的那个函数也是不行。我想是我没想到真正如何编写填表的思路吧,请高手们给我讲讲,好不好。可以发个E_mail给我吧:lin

holin的专栏 938

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

请多多关照!!

         首次来到这里,还希望大家多多关照!!也希望能与大家多多交流!!!

huyingxia的专栏 267

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

求助!!高手们请快来帮忙啊

请用C语言下面程序(C++也可以)实现一个内存搬移函数,函数原型如下:              void *memory_move(void *dest, const void *src, size_t n)              用于将从src开始长度为n字节的内存区域移动到dest开始区域,返回值为dest指向地址。注意考虑各种情况和性能优化。

achillesaga的专栏 982

重大机遇!请马上入局!!

Open AI 最新成果炸裂ChatGPT裂变成无数个GPTs“苹果”替代“诺基亚”的时代又要来临了!!2年内,传统 IT 岗位将失业被重塑!5年内,医疗/量化/互联网/办公等行业涌现新业态现在还不学习AI大模型训练技术或将很快面临“被淘汰”!作为普通程序员,如何不被时代抛弃,享受AI技术带来的红利?!????知乎知学堂特发起:行业前沿资源——AI大模型公开课已为本号粉丝开通免费领取权限预计24小时...

u012516914的专栏 116

请大家来报名喽~!!

大名门牌号QQ邮箱电话备注钟摆4#-5-x28657890cnetwei@126.com13571986685......朱大少8#-2-0501654354  ......海南幽幽8#-4-0302437800217junping225@163.com13201875492......小猪坏坏4#-x-x51255203 13201522978......美丽8#-2-x253026122cal

长安新都市业主家园 1135

请高手帮帮忙!!

刚刚自己花了一断时间建了一个网站,现在不知什么样,提成它的流量!请大家帮帮忙。。网址:www.zh01.com

欢迎光临 330

Xml读写!!请高手帮忙!!!

                以上是xml类型    怎么清空该xml节点重新写入节点和数据有高手请帮个忙!!!QQ:378894953!!

leelee_live的专栏 352

R如何安装MSBVAR包!!!请看这里!!

1.MSBVAR介绍 2.为何R上安装失败 3.解决方案

PY洋洋 3750

下面是个程序,请高手按要求补冲程序,谢谢了!!急急!!

程序如下,本人现在想当单击“字体”菜单条时,弹出设置字体、字号、颜色的对话框,单击“帮助主题”和“关于记事本”时也弹出对话框显示相应的内容。我用的是neatbean 5.0import java.awt.*;import java.awt.event.*;public class notePad{    public static void main(String args[])  {  

dreams2038的专栏 656

请远离这些精神毒品!!

阅读文本大概需要 2 分钟。前几天,有读者在我一篇文章下面留言,问我怎么才能变得更优秀?我在评论区给了这样一个回复:虽然很多人点赞,但是后台很多读者表示不解,想让我详细说...

AndroidDeveloper 2682

请前辈们帮我解决下问题!!谢谢!!

 问题1:ADO.net中常用的对象有哪些?问题2:DataReader与Dataset有什么区别?(是C#语言)

zhuhaibin6336的专栏 321

萌新小白请大佬们帮忙,谢谢!!

java代码: 从键盘中输入整数和m(10&gt;m&gt;1),用0~m之间(包括0和m)任取3个不同的数,组成一个3位的偶数,计算共有多少种 例如:m=2 则有偶数:102,120,210; 输出:3 要求:百位数从1~m; 十位数从0~m,且不能与百位数相同; 个位数从0~m,且不能与百位数和十位数相同并且必须为偶数! ...

weixin_43371267的博客 562
上一篇: 1015. 德才论 (25) python篇
下一篇: 1025. 反转链表 (25) python篇
PAT-python-zjw
博客等级 码龄10年 381粉丝 408原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值