2024第十五届蓝桥杯 JAVA B组 填空题

没参加这次蓝桥杯算法赛,十四届蓝桥杯被狂虐,对算法又爱又恨,爱我会做的题,痛恨我连题都读不懂的题😭,十四届填空只做对一个,今天闲的蛋疼想看看这次比赛能做对几个。

暂时没找到题目,这是网上找的简略版,看了看就知道蓝桥杯前几道题就喜欢考数学思维和十四届一样

试题 A: 报数游戏

(简洁版)从小到大排列是20或24倍数的正整数,前10个数依次是:”20 24 40 48 60 72 80 96 100 120“,求第202420242024个数是多少?(填空题)

解题思路:

最开始想的是求求它俩的最小公倍数是120发现没啥用,然后再发现24比20多4,也就是24向前叠加5次就整整多出来一个20,然后再在纸上画画发现了每10次一循环:

在这里插入图片描述

可以看出第10个数是24 * 5,第20个数是24 * 10,那么202420242024可以分成202420242020 + 4,最后发现偶数4也是24结尾,那么答案就是202420242024 / 2 * 24
在这里插入图片描述


试题 B: 类斐波那契循环数

(个人理解:)将一个n位的数字按一定的规则排成一个数列。

规则:
这个数列的起始部分分别为该数字每一位上的数。例如:数字(12345)排成数列是【1,2,3,4,5】。
这个数列的其它部分分别为从当前数列的最后一位起,前n项的和。例如数字(12345,共5位)排成数列【1,2,3,4,5,(?),…】,此时数列的第6个数就是从当前数列的最后一位起前5项的和,即(1+2+3+4+5=15)【1,2,3,4,5,15】;第7个数就是从当前数列的最后一位起前5项的和,即(2+3+4+5+15=29)【1,2,3,4,5,15,29】;…
如果这个数列中包含这个数字本身,那么这个数就是类斐波那契循环数。
求从0~10^7范围中最大的类斐波那契循环数。(填空题)

解题思路:

仔细做了做例子发现:
在这里插入图片描述
发现有点像滑动窗口,求新数后窗口移动一下,所以想着将整个过程放在一个数组里,但是这样一整每次数组的长度都是不定的,不好定义数组的长度,且求到新数后,数组前面的区域就没用了,所以就想着能否用一个定长数组来做滑动窗口,且所有区域都用的上

分析一下上面例子求出新数15后第一个数1就对求下一个数29来说没用了,为什么不把15放在1的位置,以此类推29放在2的位置

在这里插入图片描述
这样就好整了,数组大小就等于数字的位数,还需要一个K指针在整个数组中循环移动用%Length就解决了

说实话这个灵感来源于我嵌入式对页面切换的处理…

最后看是怎么停止了,题目说了这个数列中包含这个数本身那么这个数就是类斐波那契循环数,因为每次求得得新数都是递增的,所以如果新数都大于原始数的话,那么说明这个数不是类斐波那契循环数

既然求类斐波那契循环数的整个逻辑模式都搞明白了,剩下就是用代码实现上述的功能需求了:

import java.util.*;public class Main {static int END = 10000000;public static void main(String[] args) {int MaxNumber = 0;for(int i = 1; i <= END; i ++) {  // 由1开始int Length = GetNumnberLength(i);int Array[] = new int[Length];NumbertoArray(Array, i);int k = 0;while(true) {Array[k] = ListNumberSum(Array);if(Array[k] == i || Array[k] > i) break;  // 要么是类斐波那契循环数要么不是k = (k + 1) % Length;}if(Array[k] == i) {  // 是的话更新MaxNumberif(MaxNumber <= i) {MaxNumber = i;}}}System.out.println(MaxNumber);}public static int GetNumnberLength(int number) {int len = 0;while(number > 0) {len ++;number = number / 10;}return len;}public static void NumbertoArray(int array[], int number) {for(int i = array.length - 1; i >= 0; i --) {array[i] = number % 10;number = number / 10;}}public static int ListNumberSum(int array[]) {int sum = 0;for(int i = 0; i < array.length; i ++) sum = sum + array[i];return sum;}
}

其中while循环应该也循环不了几百次,整个时间复杂度应该等于10^7 * while循环次数,超过不了10^9复杂度,计算机一两秒就算出来了。

答案:在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/619317.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【氮化镓】GaN HEMTs结温和热阻测试方法

文章《Temperature rise detection in GaN high-electron-mobility transistors via gate-drain Schottky junction forward-conduction voltages》&#xff0c;由Xiujuan Huang, Chunsheng Guo, Qian Wen, Shiwei Feng, 和 Yamin Zhang撰写&#xff0c;发表在《Microelectroni…

Form表单控件主要标签及属性。name属性,value属性,id属性详解。表单内容的传递流程,get和post数据传递样式。表单数据传递实例

form表单 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </head> &…

记一次小郭被挖矿后的应急响应

谨以此篇纪念我第n1次被挖矿经历。 时间&#xff1a;2024年3月18日&#xff08;星期一&#xff09; 地点&#xff1a;阿里云服务器 响应&#xff1a;确认–>抑制–>消除–>恢复–>总结 确认阶段&#xff1a; 2024年3月18日星期一早上收到了阿里云的短信和邮件…

【QT+QGIS跨平台编译】161:【qgispython跨平台编译】—【qgis_python.h生成】

点击查看专栏目录 文章目录 一、qgis_python.h介绍二、信息分析三、qgis_python.h生成一、qgis_python.h介绍 qgis_python.h 是 QGIS(Quantum Geographic Information System)GIS 软件的一个头文件。QGIS 是一个开源的地理信息系统软件,提供了丰富的地图制图和空间分析功能。…

NUC11更新 ESXi 8.0U2B 安装过程

1、下载 镜像名称&#xff1a;VMware-VMvisor-Installer-8.0U2b-23305546.x86_64.iso下载地址&#xff1a;https://docs.vmware.com/tw/VMware-vSphere/8.0/rn/vmware-vsphere-80-release-notes/index.html 2、制作镜像启动盘 2、查看镜像版本信息 3、启动设备安装系统 1、启…

【Vue】新手一步一步安装 vue 语言开发环境

文章目录 1、下载node.js安装包 1、下载node.js安装包 1.打开node.js的官网下载地址&#xff1a;http://nodejs.cn/download/ 选择适合自己系统的安装包&#xff1a;winds、mac 2. 配置node.js和npm环境变量 安装好之后&#xff0c;对npm安装的全局模块所在路径以及缓存所在路…

《由浅入深学习SAP财务》:第2章 总账模块 - 2.7 总账模块报表 -2.7.2 对外报表:现金流量表

2.7.2 对外报表&#xff1a;现金流量表 现金流量表包括直接法和间接法。使用SAP出具现金流量表&#xff0c;一般只能出具直接法报表。间接法是指按照净利润倒推出现金流量的发生额&#xff0c;由于其中存在人为“分析”的因素&#xff0c;很难直接通过科目的加加减减得出所需要…

前端console用法分享

console对于前端人员来讲肯定都不陌生&#xff0c;相信大部分开发者都会使用console来进行调试&#xff0c;但它能做的绝不仅限于调试。 最常见的控制台方法 作为开发者&#xff0c;最常用的 console 方法如下&#xff1a; 控制台打印结果&#xff1a; 今天我分享的是一些 co…

kibana源码编译

一、安装nodejs16.14.2及yarn &#xff08;一&#xff09;nodejs 1、下载 https://cdn.npmmirror.com/binaries/node/v16.14.2/node-v16.14.2-linux-x64.tar.gz2、解压 tar -zxf node-v16.14.2-linux-x64.tar.gz -C /app cd /app mv node-v16.14.2-linux-x64 node3、配置环…

numpy学习笔记(5),其他实用函数

8. 更多函数 8.1 随机数 8.1.1 常用随机数 8.1.1.1 numpy.random.rand(d0, d1, …, dn) 返回[0.0, 1.0)随机浮点数&#xff0c;即大于等于0.0&#xff0c;小于1.0。d0, d1, …, dn&#xff1a;返回的数组形状 # 使用numpy.random.rand函数 import numpy as np np.random.r…

关于部署ELK和EFLK的相关知识

文章目录 一、ELK日志分析系统1、ELK简介1.2 ElasticSearch1.3 Logstash1.4 Kibana&#xff08;展示数据可视化界面&#xff09;1.5 Filebeat 2、使用ELK的原因3、完整日志系统的基本特征4、ELK的工作原理 二、部署ELK日志分析系统1、服务器配置2、关闭防火墙3、ELK ElasticSea…

Python数据可视化:饼图s.plot.pie()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 Python数据可视化&#xff1a; 饼图 s.plot.pie() 请问题目中的代码最后输出什么?import pandas as pd import matplotlib.pyplot as plt s pd.Series([1, 3, 3, 4], index[A, B, C, D]) …