蓝桥杯22年javaB组省赛真题

22年java_b组题目解析

写该博客既是为了分享题目解法,也是对之前写的题复习,毕竟已经24年了,写22年的题解

233🤭

文章目录

    • 22年java_b组题目解析
      • A.星期计算(填空题)
      • B.山(填空题)
      • C.字符统计(编程题)
      • D.最小刷题数
      • E.求阶乘

A.星期计算(填空题)

【问题描述】

已知今天是星期六,请问 20 的22次方天后是星期几?
注意用数字 1 到 7 表示星期一到星期日

【答案提交】

这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

【解题思路】

看题目,数字并不是非常大,20的22次方,直接使用大数就能放下,或者可以直接使用电脑自带的计算器计算(嘿嘿嘿,我当时就用自带计算器做的,并不会被点名~😁),相对于23年的第一题,并不需要太多思考的地方;

【题解】

public class Main {public static void main(String[] args) {BigInteger bigInteger=BigInteger.valueOf(20).pow(22).mod(BigInteger.valueOf(7));// 先定义大数为20的20次方取模7的值;int result=(6+bigInteger.intValue())%7;  // 结果值为第一步的取模值+6再取7的模;System.out.println(result==0?7:result);//返回结果,若=0怎刚好整除,返回7,其余返回源值;}
}

方法2,使用计算器计算;

不再截图;

【结果】

7

B.山(填空题)

【问题描述】

这天小明正在学数数。
他突然发现有些正整数的形状像一座“山”,比如 123565321 、 145541 ,它们左右对称(回文)且数位上的数字先单调不减,后单调不增。
小明数了很久也没有数完,他想让你告诉他在区间[2022,2022222022]中有多少个数的形状像一座“山”。

【答案提交】

这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分

【解题思路】

看这道题暴力的时间复杂度还是挺高的,但由于是填空题,对于时间复杂度和空间复杂度并没有太大的要求,而且题目目标明确,仍可以暴力解决🤗。

提出一种实现办法:先判断范围内所有的回文数,再判断这些回文数前半部分是否非单调减就ok了

【题解】

public class{public static void main(String[] args) {//2022到2022222022中有多少山;//可以分两步走,先判断所有的回文数,再判断回文数是否单调赠再减;int count=0;a:   for (int i = 2022; i <=2022222022; i++) {String s=String.valueOf(i);for (int j = 0; j <(s.length()+1)/2 ; j++) {if(s.charAt(j) != s.charAt(s.length()-1-j))//判断是否是回文数{continue a;}//既然已经是回文数了,只用判断前半部分是否非单调减就行了;}for (int j = 0; j <(s.length()+1)/2-1 ; j++) {if(s.charAt(j)>s.charAt(j+1))continue a;}count=count+1;}System.out.println(count);}
}

注意:由于复杂度较高,程序可能运行几十秒才出结果,不要直接就退出了;

【结果】

3138

C.字符统计(编程题)

【问题描述】

给定一个只包含大写字母的字符串S,请你输出其中出现次数最多的字母。如果有多个字母均出现了最多次,按字母表顺序依次输出所有这些字母。

【输入格式】

一个只包含大写字母的字符串S.

【输出格式】

若干个大写字母,代表答案。

【样例输入】

BABBACAC

【样例输出】

AB

【解题思路】

其实还是一道复述题,题目并不是很难懂,仍然注重于具体实现,常见思路:🤔

可以先建立长度26的数组,统计出每个字母出现的次数,以字母ascii-A为数组下标,统计出现次数,遍历数组找出最大值,再次遍历数组,比较每个值和最大值大小,等于最大值输出,小于的不管

【题解】

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);String s = scanner.next();// 映射起来还是很容易的,只有大写字母,可以将字母写成26长度的数组统计次数;// A  ascii 是 65; Z ascii 是65+26=91;int[] n = new int[26];for (int i = 0; i < s.length(); i++) { // 统计各个字母的出现次数;if (Character.isUpperCase(s.charAt(i))) { // 只考虑大写字母n[s.charAt(i) - 'A']++;}}int maxCount = 0;for (int i = 0; i < n.length; i++) { // 找出出现次数最多的字母的次数maxCount = Math.max(maxCount, n[i]);}// 输出出现次数最多的字母for (int i = 0; i < n.length; i++) {if (n[i] == maxCount) {System.out.print((char) ('A' + i));}}}
}

D.最小刷题数

【问题描述】

小蓝老师教的编程课有N名学生,编号依次是 1…N。第i号学生这学期 刷题的数量是Ai。

对于每一名学生,请你计算他至少还要再刷多少道题,才能使得全班刷题 比他多的学生数不超过刷题比他少的学生数

【输入格式】

第一行包含一个正整数N 第二行包含N个整数:A1,A2,A3,…AN.

【输出格式】

输出N个整数,依次表示第 1…N号学生分别至少还要再刷多少道题。

【样例输入】

5 12 10 15 20 6

【样例输出】

0 3 0 0 7

【解题思路】

如果不考虑全部情况,这道题是拿不到满分的,因为中间值可能连续出现很多个,先说基本思路,先对所有初始值排序,并找到中间值是多少,然后从中间值两边遍历,统计出中间值左侧不等于中间值的数多,还是右侧不等于中间值的数多,然后对原数组遍历,根据和中间值的关系使用不同的方案;

【题解】

package 蓝桥杯真题;import java.util.*;public class 最少刷题数 {public static void main(String[] args) {/*** 第一行包含一个正整数 N。* 第二行包含 N 个整数:A1, A2, A3, . . . , AN.*/Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();int[] arr = new int[n];for (int i = 0; i < n; i++) {arr[i] = scanner.nextInt();}//对于每一名学生,请你计算他至少还要再刷多少道题,才能使得全班刷题//比他多的学生数不超过刷题比他少的学生数。int[] copyarr = Arrays.copyOfRange(arr, 0, arr.length);//将新的复制数组进行排序Arrays.sort(copyarr);int median = copyarr[copyarr.length/2];int result[] = new int[arr.length];int lage = 0;//是否加1的控制开关 默认不加int bigger = 0;int smaller = 0;int mid = 0;//找出比中间值大的数有多少 比中间值小的数有多少for (int i = 0; i < arr.length; i++) {if(copyarr[i]>median) {bigger++;}else if(copyarr[i]<median) {smaller++;}}if(bigger>=smaller) {lage = 1;}if(bigger>smaller) {mid=1;}for (int i = 0; i < result.length; i++) {if(arr[i]< median) {result[i] = median+lage - arr[i];}else if(arr[i]==median&&mid==1) {result[i] = median+mid-arr[i];}else{result[i] = 0;}}for (int i = 0; i < result.length; i++) {System.out.print(result[i]+" ");}}
}

E.求阶乘

【问题描述】

满足N!的末尾恰好有K个 0 的最小的N是多少? 如果这样的N不存在输出-1 。

【输入格式】

一个整数K。

【输出格式】

一个整数代表答案。

【样例输入】

2

【样例输出】

10

【解题思路】

其实如果以前了解这方面的知识那么这道题会比较简单;即,末尾0应该是最小单位2*5组成的,又2很容易很多,只用查询有多少个5就行了,再看题目k范围比较大就不能暴力查找了,用二分查找会好很多,因为整个的阶乘是已经自然排好的;😀

【题解】

import java.util.Scanner;public class Main {// 计算阶乘末尾0的个数其实就是计算阶乘因子中5的个数static long countZeros(long x) {long res = 0;while (x != 0) {res += x / 5;x /= 5;}return res;}
public static void main(String[] args) {// 二分查找Scanner scanner = new Scanner(System.in);long k = scanner.nextLong();long left = 0;long right = Long.MAX_VALUE;//范围左为0,右为边界while (left <= right) {long mid = left + (right - left) / 2;if (k <= countZeros(mid)) {right = mid - 1;} else {left = mid + 1;}}if (countZeros(left) != k) {System.out.print(-1);} else {System.out.print(left);}}
}

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

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

相关文章

day75 js 正则表达式 window对象轮播图片调用定时器

一 正则表达式: RegExp 对象: 对字符串执行模式匹配的强大工具。 1 创建正则表达式对象 let reg /模式/修饰符 修饰符 attributes 是一个可选的字符串&#xff0c;包含属性 "g"、"i" 和 "m"&#xff0c; …

Azure的VFP和虚拟IP地址

Azure 的Virtual filtering platform (VFP) 是Azure 网络地址转换,端口转换和端口分配的基础。 下面我们来深入介绍一下VFP的工作方式。 VFP的出站动作。 对于客户端地址作为虚拟IP的出站目的地址的时候,VFP 驱动会负责做以下两个动作。 源地址转换。端口地址转换。VFP 和 S…

20240325-1-HMM

HMM 直观理解 马尔可夫链&#xff08;英语&#xff1a;Markov chain&#xff09;&#xff0c;又称离散时间马尔可夫链&#xff08;discrete-time Markov chain&#xff0c;缩写为DTMC&#xff09;&#xff0c;因俄国数学家安德烈马尔可夫&#xff08;俄语&#xff1a;Андре…

【C++进阶】用哈希实现unordered_set和unordered_map的模拟

&#x1fa90;&#x1fa90;&#x1fa90;欢迎来到程序员餐厅&#x1f4ab;&#x1f4ab;&#x1f4ab; 主厨&#xff1a;邪王真眼 主厨的主页&#xff1a;Chef‘s blog 所属专栏&#xff1a;c大冒险 总有光环在陨落&#xff0c;总有新星在闪烁 前言&#xff1a; 之前我…

H5移动端 Vue3 + vue-virtual-scroller 实现长列表性能优化

文章目录 安装 vue-virtual-scroller引入&#x1f4e2;注意事项使用基础使用上拉加载下拉刷新 移动端在渲染长列表时 大量dom节点的渲染和重绘重排会导致页面卡顿、滚动不流畅、设备耗电加快、影响移动设备电池寿命等性能问题 这里分享使用【虚拟滚动】方案进行长列表优化&…

【C++ STL算法】sort 排序

文章目录 【 1. 基本原理 】【 2. sort 的应用 】实例 - sort 函数实现 升序排序和降序排序 函数名用法sort (first, last)基于 快速排序&#xff0c;对容器或普通数组中 [ first, last ) 范围内的元素进行排序&#xff0c;默认进行升序排序&#xff08;从小到大&#xff09;。…

2024年面试AI编译器岗经验总结

面试经历: 面试中必备的知识: 1.用C++实现一个卷积 (图解)一步一步使用CPP实现深度学习中的卷积 - GiantPandaCVGiantPandaCVhttp://giantpandacv.com/academic/%E7%AE%97%E6%B3%95%E7%A7%91%E6%99%AE/%E5%B0%BD%E8%A7%88%E5%8D%B7%E7%A7%AF%E7%A5%9E%E7%BB%8F%E7%BD%91%E…

Mac 下载 (FinallShell)

FinalShell 官网&#xff1a;FianlShell官网 FinalShell是一体化的的服务器,网络管理软件,不仅是ssh客户端,还是功能强大的开发,运维工具,充分满足开发,运维需求. 特色功能: 免费海外服务器远程桌面加速,ssh加速,本地化命令输入框,支持自动补全,命令历史,自定义命令参数 Win…

自然语言处理——计算编辑距离

编辑距离(Levenshtein距离)的概念和计算方法 编辑距离(Levenshtein距离)的概念和计算方法深入地探讨了字符串之间的差异和相似度。通过测量一个字符串变换成另一个字符串所需的最小单字符编辑操作次数,我们能够量化两个字符串之间的相似程度。编辑距离的核心在于识别和执…

git 常用命令和使用方法

作者简介&#xff1a; 一个平凡而乐于分享的小比特&#xff0c;中南民族大学通信工程专业研究生在读&#xff0c;研究方向无线联邦学习 擅长领域&#xff1a;驱动开发&#xff0c;嵌入式软件开发&#xff0c;BSP开发 作者主页&#xff1a;一个平凡而乐于分享的小比特的个人主页…

2014最新AIGC创作系统ChatGPT网站源码+AI绘画网站源码+GPT4-All联网搜索模型

一、文章前言 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;那么如何搭建部署AI创作ChatGPT&#xff1f;小编这里写一个详细图文教程吧。已支持…

[C++][算法基础]字符串哈希(哈希表)

给定一个长度为 n 的字符串&#xff0c;再给定 m 个询问&#xff0c;每个询问包含四个整数 l1,r1,l2,r2&#xff0c;请你判断 [l1,r1] 和 [l2,r2] 这两个区间所包含的字符串子串是否完全相同。 字符串中只包含大小写英文字母和数字。 输入格式 第一行包含整数 n 和 m&#x…

HarmonyOS 应用开发-边缓存边播放案例

介绍 OhosVideoCache是一个支持边播放边缓存的库&#xff0c;只需要将音视频的url传递给OhosVideoCache处理之后再设置给播放器&#xff0c; OhosVideoCache就可以一边下载音视频数据并保存在本地&#xff0c;一边读取本地缓存返回给播放器&#xff0c;使用者无需进行其他操作…

Android Telephony框架

目录 一、简介二、应用层(Application)三、框架层(Framework)四、本地 RIL 层(RIL)五、驱动层(Modem)六、整体框架 一、简介 无论手机发展到如何智能的程度&#xff0c;最关键和重要的功能仍然是通讯&#xff0c;具体来说就是打电话、发短信、上网功能的使用。而整个 Android …

Centos 7 安装通过yum安装google浏览器

在CentOS 7上使用yum安装Google Chrome浏览器稍微复杂一些&#xff0c;因为Chrome并不直接包含在默认的Yum仓库中。按照以下步骤来操作&#xff1a; 1、添加Google Chrome仓库 首先&#xff0c;您需要手动添加Google Chrome的Yum仓库。打开终端&#xff0c;并使用文本编辑器&a…

【HDFS】 写数据报 NOT_ENOUGH_STORAGE_SPACE

一、问题描述 对测试集群做压测,实验配置如下: 10个Client、每个Client使用550线程去写80000个文件,每个文件10KB。 在测试的过程中,客户端侧报了很多写入失败的异常日志,如下所示。 提示信息显示3台运行的datanode都被exclude了,因此选不出节点写入导致写入失败。 13…

MySQL高可用搭建方案MHA

MHA架构介绍 MHA是Master High Availability的缩写&#xff0c;它是目前MySQL高可用方面的一个相对成熟的解决方案&#xff0c;其核心是使用perl语言编写的一组脚本&#xff0c;是一套优秀的作为MySQL高可用性环境下故障切换和主从提升的高可用软件。在MySQL故障切换过程中&am…

使用 AI 生成正则表达式,告别正则烦恼

如果你有处理正则表达式的需求&#xff0c;那么这个网站&#xff08;autoregex.xyz&#xff09;一定要收藏好。 可以根据文字描述生成正则表达式。 默认是从文字到正则&#xff0c;不用选择。 输入框中输入描述&#xff0c;点击 ”GO“ 按钮。 等待一会儿&#xff0c;即可生…

get请求搜索功能爬虫

<!--爬虫仅支持1.8版本的jdk--> <!-- 爬虫需要的依赖--> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.2</version> </dependency>…

mos管开关出现尖峰的原理? mos管开关的时候cs会出现尖峰,请问这是什么原因?

MOS管在开关过程中出现尖峰现象&#xff0c;通常是由于电路中的寄生参数和快速电压变化引起的。以下是一些导致尖峰出现的主要原因和原理&#xff1a; 寄生电容 在MOS管的源极&#xff08;S&#xff09;和漏极&#xff08;D&#xff09;之间存在寄生电容&#xff0c;这个电容在…