【蓝桥杯】蛇形填数 - Java版解析

这篇具有很好参考价值的文章主要介绍了【蓝桥杯】蛇形填数 - Java版解析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题

如下图所示,小明用从1 开始的正整数“蛇形”填充无限大的矩阵。
【蓝桥杯】蛇形填数 - Java版解析
容易看出矩阵第二行第二列中的数是5。请你计算矩阵中第20 行第20 列的数是多少?

2020年第十一届蓝桥杯省赛真题——蛇形填数

解析

第一种
直接按照题目思路,开一个大的数组,然后按照题目逻辑去数到n,参照代码方式
【蓝桥杯】蛇形填数 - Java版解析

第二种
为了方便理解,我们来转化下矩阵形状如下
【蓝桥杯】蛇形填数 - Java版解析
假设行号为k,行列相同的行列我们假设为n,第n行n列的数值为ans
【蓝桥杯】蛇形填数 - Java版解析
通过观察我们可以看出以下规律

  1. 第n行第n列的数据是隔一行出现一次,和行号k=2n-1
  2. 每行的数字数是和行号k相同的,即第一行一个数,第二号两个数…
  3. 每行的最大值和行号k呈等差数列求和的关系,例如1=13=1+26=1+2+3max=1+2+...+k,由等差数列求和公式Sn=n*a1+n(n-1)d/2,所以,max=k(k+1)/2
  4. 第n行第n列的值为前一行最大值加n,所以ans=(k-1)(k-1+1)/2+nans=2n(n-1)+1

额,这样分析完好像不用代码了,算了写在优化吧。文章来源地址https://www.toymoban.com/news/detail-411162.html

代码(第一种)

public static void main(String[] args) {
    int[][] matrix = new int[100][100];
    int cnt = 0,n=20;
    matrix[1][1] = ++cnt;
    int col = 1, row = 1; //col代表列坐标,row代表行坐标
    while(matrix[n][n] == 0) {
        matrix[row][++col] = ++cnt; //向右
        while(col > 1) { //右上到左下
            matrix[++row][--col] = ++cnt;
        }
        matrix[++row][col] = ++cnt; //向下
        while(row > 1) { //左下到右上
            matrix[--row][++col] = ++cnt;
        }
    }
    System.out.println(matrix[n][n]);
}

优化(第二种)

public static void main(String[] args) {
    int n=20,ans;
    ans=2*n*(n-1)+1;
    System.out.println(ans);//761
}

到了这里,关于【蓝桥杯】蛇形填数 - Java版解析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 蓝桥杯十四天冲刺班 第十四天《考场经验 | 历年考点 | 蓝桥杯押题》《C,JAVA,PY在蓝桥杯中必须要会用的容器 | 集合》(3K+字解析)

     📒博客首页:Sonesang的博客 🎉欢迎关注🔎点赞👍收藏⭐️留言📝 ❤️ :热爱Java与算法学习,期待一起交流! 🙏作者水平很有限,如果发现错误,求告知,多谢! 🌺有问题可私信交流!!!   目录 算法 实力 = 知识点+刷题量+速度+灵活的大脑 C++组知识点 java组知识点

    2023年04月15日
    浏览(30)
  • 【详细介绍下图搜索算法】

    🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步! 💥图搜索算法是用于在图中搜索从起始节点到目标节点的路径的算法

    2024年04月25日
    浏览(35)
  • 【学习笔记】[省选联考 2023] 填数游戏

    我不好说,因为考场上我想成二分图然后就gg了 这题不难,真的不难。 ∣ T i ∣ ≤ 2 |T_i|le 2 ∣ T i ​ ∣ ≤ 2 这个性质一看就非常亲切啊,可以看成一条 a i a_i a i ​ 到 b i b_i b i ​ 的连边,不妨将问题做一些泛化,将 ∣ T i ∣ = 1 |T_i|=1 ∣ T i ​ ∣ = 1 看成连向 a i a_i a i ​

    2023年04月09日
    浏览(29)
  • Java代码解析:求解数组的小和问题

    在这篇博客中,我们将深入探讨如何使用Java解决一个有趣的问题:求解数组的小和问题。我们将首先理解问题的定义,然后逐步分析和解释给出的Java代码。 在一个数组中,每一个数左边比当前数小的数累加起来,叫做这个数组的小和。例如,数组[1,3,4,2,5]的小和为1+1+3+1+1+

    2024年02月16日
    浏览(25)
  • HOJ 系统常用功能介绍 OJ部署定制快速入门 c++ python Java编程在线自动评测判题 信息奥赛一本通 USACO G E S P 蓝桥 CSP NOIP 蓝桥等考题库 常见问题

    技术支持微  makytony   终身更新维护 功能类似洛谷和信息奥赛一本通,支持CSP复赛中的freopen文件输入输出方式提交,模拟真实考试环境,防止出现 本地  AC 比赛  WA  PA TLE  爆零 的惨剧。 组织比赛作业,创建题目、查看用户提交代码、下载评测数据等都没限制。 约  328

    2024年01月25日
    浏览(28)
  • 蓝桥杯嵌入式组 历年客观题解析

    由于14届蓝桥杯芯片换成 STM32G431RBT6 所以这篇笔记中将涉及到芯片的题目都已更新 对于逻辑代数选择题可以用假定法    本题 选C     本题 选D  3. STM32G431RBT6 微控制器内核是() 由芯片手册可知, 本题选 D 4. STM32G431RBT6 微控制器不支持的数据类型是()   1 字节 (byte) = 8

    2023年04月09日
    浏览(27)
  • 【蓝桥杯嵌入式】蓝桥杯第十届省赛真题,程序题全解析(含代码)

    🎊【蓝桥杯嵌入式】专题正在持续更新中,原理图解析✨,各模块分析✨以及历年真题讲解✨都在这儿哦,欢迎大家前往订阅本专题,获取更多详细信息哦🎏 🎏【蓝桥杯嵌入式】蓝桥杯第十二届省赛程序真题 🎏【蓝桥杯嵌入式】蓝桥杯第十三届省赛程序真题 🪔本系列专

    2023年04月15日
    浏览(33)
  • 蓝桥杯嵌入式第十届初赛题目解析

     最近写完了嵌入式第十届初赛的题目,拿出来和大家分享,希望帮助解决一些问题。 目录 客观题  程序设计题 题目解析 CubeMX配置  代码演示  收集的一些历年的比赛客观题和解析,以及程序设计题的PDF,在这里分享给大家。  链接 :https://pan.baidu.com/s/1hTw0inSbLjX57hOtankgKw 

    2023年04月11日
    浏览(37)
  • 【十三届蓝桥杯省赛解析javaC组】

    题目描述 解题思路 A题相对比较简单,这题有两种解法 第一种是可以利用记事本把文本复制,然后自己手动排序 第二种是写代码:具体思路是定义一个字符串用来储存问文本,然后把文本转成字符型数组,利用Arrays.sort对字符型数组进行排序,最终实现字符的排序 代码示例

    2023年04月20日
    浏览(29)
  • 第十二届蓝桥杯国赛试题及解析

    第一题 *选择题严禁使用程序验证设s =HiLanQiao\\\',运行以下哪个选项代码可以输出“LanQiao”子串( A )。 A、print(s[-7:]) B、print(s/-6:-11) C、print(s1-7:01) D、print(s[-7:-1]) 第二题 *选择题严禁使用程序验证已知a=2021.0529,运行以下哪个选项代码可以输出“2021.05” ( B )A、print( .2f1\\\'.format(a

    2024年02月08日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包