十三届蓝桥杯真题JavaB组解析+代码(带你复习知识点)(一)

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: 十三届蓝桥杯真题JavaB组解析+代码(带你复习知识点)(一)

试题 A: 星期计算 【填空题】

d9871d1d7cf641dd971fe0938e13b0aa.png

答案:7

解析:直接对所给数进行取余,然后直接再加6(注意:不能直接让20^22+6再对7进行取余操作,这是不对的,这个6可以看成已经取余过了。) 直接取余的话可以使用java自带的Math.pow(数,次方),或者使用BigInteger(BigInteger和int的区别就是前者范围没有限制,所以可以直接使用)。


实现代码:

方法一:使用BigInteger解

public class one {
  public static void main(String[] args) {
    BigInteger bigInteger = BigInteger.valueOf(20).pow(22).mod(BigInteger.valueOf(7));
    int ha = (bigInteger.intValue()+6)%7;
    System.out.println(ha);
  }
}


方法二:直接使用Math.pow()

public static void main(String[] args) {
    System.out.println(Math.pow(20, 22)%7+6);
  }


试题 B: 山 【填空题】

29917728fbe94549b3a033aa1dd8eca1.png

答案:3138


解析:通过分析这道题,虽然给的是一个范围,但是考的还是判断一个数是否是回文数且前一半是不递减,我们实现判断回文和不递减方法后,通过一个for循环便可以求出结果。因为数据量比较大,所以比较耗时,大概快一分钟。


实现代码:

方法一:判断是否回文字符串使用双指针进行判断:

public class two {
  public static void main(String[] args) {
    int count = 0;
    for(int i =2022;i<=2022222022;i++) {
      if(check(i) && isHuiWen(i)) {
        count++;
      }
    }
    System.out.println(count);
  }
  private static boolean check(int num) {
    String s = num+"";
    for(int i =0;i<s.length()/2;i++) {
      if(s.charAt(i)>s.charAt(i+1)) return false;
    }
    return true;
  }
  private static boolean isHuiWen(int num) {
    String s = num+"";
    for(int i =0,r=s.length()-1;i<r;i++,r--) {
      if(s.charAt(i) != s.charAt(r)) return false;
    }
    return true;
  }
}


方法二:使用StringBuilder.reverse().toString.equals()来判断

这里补充一下三者用法区别:

8b023e53ef3d40049d5dc9082b0a678c.png

public class two {
  public static void main(String[] args) {
    int count = 0;
    for(int i =2022;i<=2022222022;i++) {
      if(check(i) && isHuiWen1(i)) {
        count++;
      }
    }
    System.out.println(count);
  }
  private static boolean check(int num) {
    String s = num+"";
    for(int i =0;i<s.length()/2;i++) {
      if(s.charAt(i)>s.charAt(i+1)) return false;
    }
    return true;
  }
  private static boolean isHuiWen1(int num) {
    String snum = num+"";
    StringBuilder stringBuilder = new StringBuilder(snum);
    return stringBuilder.reverse().toString().equals(snum);
  }
}


试题 C: 字符统计【代码题】

388c75a84c6e4db986fbc2ff4df9129a.png


分析:方法一:可以通过定义一个容量为26的数组来记录每个字符出现的次数,然后查找出次数最大的字符,通过遍历一遍for循环,来使按照字母表顺序输出。

补充知识点:

键盘输入的时候,next和nextline的区别,因为可能输入空的字符串,所以这里使用nextline来进行接收。

2a5809edec544124a9dd8be50e914377.png


代码实现:

public class three {
  public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    String str = scanner.nextLine();
    int[] arr = new int[26];
    String str1 = "";
    for(int i =0;i<str.length();i++) {
      arr[str.charAt(i)-'A']++;
    }
    int max = Integer.MIN_VALUE;
    for(int i =0;i<26;i++) {
      max = Math.max(max, arr[i]);
    }
    for(int i=0;i<26;i++) {
      if(arr[i] == max) {
        str1=str1+""+(char)(i+'A');
      }
    }
    System.out.println(str1);
  }
}


相关文章
|
19天前
|
PHP 开发者 容器
PHP命名空间深度解析:避免命名冲突与提升代码组织####
本文深入探讨了PHP中命名空间的概念、用途及最佳实践,揭示其在解决全局命名冲突、提高代码可维护性方面的重要性。通过生动实例和详尽分析,本文将帮助开发者有效利用命名空间来优化大型项目结构,确保代码的清晰与高效。 ####
18 1
|
27天前
|
机器学习/深度学习 存储 人工智能
强化学习与深度强化学习:深入解析与代码实现
本书《强化学习与深度强化学习:深入解析与代码实现》系统地介绍了强化学习的基本概念、经典算法及其在深度学习框架下的应用。从强化学习的基础理论出发,逐步深入到Q学习、SARSA等经典算法,再到DQN、Actor-Critic等深度强化学习方法,结合Python代码示例,帮助读者理解并实践这些先进的算法。书中还探讨了强化学习在无人驾驶、游戏AI等领域的应用及面临的挑战,为读者提供了丰富的理论知识和实战经验。
53 5
|
1月前
|
存储 安全 Java
系统安全架构的深度解析与实践:Java代码实现
【11月更文挑战第1天】系统安全架构是保护信息系统免受各种威胁和攻击的关键。作为系统架构师,设计一套完善的系统安全架构不仅需要对各种安全威胁有深入理解,还需要熟练掌握各种安全技术和工具。
132 10
|
1月前
|
前端开发 JavaScript 开发者
揭秘前端高手的秘密武器:深度解析递归组件与动态组件的奥妙,让你代码效率翻倍!
【10月更文挑战第23天】在Web开发中,组件化已成为主流。本文深入探讨了递归组件与动态组件的概念、应用及实现方式。递归组件通过在组件内部调用自身,适用于处理层级结构数据,如菜单和树形控件。动态组件则根据数据变化动态切换组件显示,适用于不同业务逻辑下的组件展示。通过示例,展示了这两种组件的实现方法及其在实际开发中的应用价值。
37 1
|
2月前
|
数据安全/隐私保护 流计算 开发者
python知识点100篇系列(18)-解析m3u8文件的下载视频
【10月更文挑战第6天】m3u8是苹果公司推出的一种视频播放标准,采用UTF-8编码,主要用于记录视频的网络地址。HLS(Http Live Streaming)是苹果公司提出的一种基于HTTP的流媒体传输协议,通过m3u8索引文件按序访问ts文件,实现音视频播放。本文介绍了如何通过浏览器找到m3u8文件,解析m3u8文件获取ts文件地址,下载ts文件并解密(如有必要),最后使用ffmpeg合并ts文件为mp4文件。
|
2月前
|
机器学习/深度学习 人工智能 算法
揭开深度学习与传统机器学习的神秘面纱:从理论差异到实战代码详解两者间的选择与应用策略全面解析
【10月更文挑战第10天】本文探讨了深度学习与传统机器学习的区别,通过图像识别和语音处理等领域的应用案例,展示了深度学习在自动特征学习和处理大规模数据方面的优势。文中还提供了一个Python代码示例,使用TensorFlow构建多层感知器(MLP)并与Scikit-learn中的逻辑回归模型进行对比,进一步说明了两者的不同特点。
98 2
|
1月前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
71 2
|
2月前
|
缓存 Java 程序员
Map - LinkedHashSet&Map源码解析
Map - LinkedHashSet&Map源码解析
76 0
|
2月前
|
算法 Java 容器
Map - HashSet & HashMap 源码解析
Map - HashSet & HashMap 源码解析
62 0
|
2月前
|
存储 Java C++
Collection-PriorityQueue源码解析
Collection-PriorityQueue源码解析
66 0

推荐镜像

更多
下一篇
DataWorks