java蓝桥杯前10题总结

news2024/10/7 4:30:33

文章目录

    • 1.单词分析
      • 1.代码
      • 2.知识点
    • 2.成绩统计
      • 1.代码
      • 2.知识点
        • 1.如何四舍五入?
        • 2.如何保留小数点后几位小数呢?
    • 3.最短路
    • 4.回文日期
      • 1.代码
      • 2.知识点
        • 1.日期类
        • 2.字符串细节
        • 3.连等的细节
    • 5.门牌制作
      • 1.代码
    • 6.卡片
      • 1.代码
      • 2.细节
    • 7.数字三角形
      • 1.代码
      • 2.细节
    • 8.成绩分析
      • 1.代码
      • 2.细节
    • 9.购物单
      • 1.代码
      • 2.细节
    • 10.空间
      • 1.代码
      • 2.细节
        • 1.==MB --> KB --> 字节 --> bit==
        • 2.整数溢出的问题

1.单词分析

在这里插入图片描述

1.代码

import java.util.Scanner;

public class Main {
    //计算
    public static int[] count(int a[],String b){
        for (int i = 0; i < b.length(); i++) {
            char c = b.charAt(i);
            a[(int)c-97]++;
        }
        return a;
    }
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int[] ints = new int[26];
        String s = scan.next();
        int[] ints1 = count(ints,s);
        int index = 0;
        int val = ints1[0];
        for (int i = 1; i < ints1.length; i++) {
            if(ints1[i] > val){
                val = ints1[i];
                index = i;
            }
        }
        System.out.println((char)(index+97));
        System.out.println(val);
    }
}

2.知识点

一定要用调用函数的思想,保证一个模块干一件事

2.成绩统计

在这里插入图片描述

1.代码

import java.util.Scanner;
import java.math.*;

public class Main {
    public static void getPass(int ints1[],int n){
        int pass = 0;
        int goodpass = 0;
        for (int i = 0; i < ints1.length; i++) {
            if(ints1[i]>=60){
                if(ints1[i]>=85){
                    goodpass++;
                }
                pass++;
            }
        }
        System.out.println(Math.round((pass/(n*1.0))*100) + "%");
        System.out.println(Math.round((goodpass/(n*1.0))*100) + "%");
    }
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int n = scan.nextInt();
        int[] ints = new int[n];
        for (int i = 0; i < n; i++) {
            ints[i] = scan.nextInt();
        }
        getPass(ints,n);
        scan.close();
    }
}

2.知识点

成绩的问题可以考虑数组来解决问题,从而可以使其封装成函数

1.如何四舍五入?
result = d1 / d2;
int roundNum = (int) Math.round(result);//四舍五入
int ceilNum = (int) Math.ceil(result);//向上
int floorNum = (int) Math.floor(result);//向下
2.如何保留小数点后几位小数呢?

在java中可以使用和c语言相同的语法

result = d1 / d2;
System.out.printf("%.2f",d)

3.最短路

用眼看

4.回文日期

在这里插入图片描述

1.代码

import java.util.Scanner;
import java.time.LocalDate;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String str = scan.next();//接收八位整数
        int y = Integer.parseInt(str.substring(0, 4));
        int m = Integer.parseInt(str.substring(4, 6));
        int d = Integer.parseInt(str.substring(6, 8));//字符串转int
        LocalDate n = LocalDate.of(y, m, d);
        n = n.plusDays(1);
//        System.out.println(n);
        String a = null;
        String b = null;
        boolean isFind = false;
        while (true) {
            String str1 = n.toString().replace("-", "");
            if (!isFind) {
                if(isHuiWen(str1)) {
                    a = str1;
                    isFind = true;
                }
            }
            if (isFind) {
                if (isABABBABA(str1)) {
                    b = str1;
                    break;
                }
            }
            n = n.plusDays(1);
        }
        System.out.println(a);
        System.out.println(b);
        scan.close();
    }
    public static boolean isHuiWen(String s) {
        boolean isFind = false;
        for (int i = 0; i < s.length() / 2; i++) {
            if (s.charAt(i) != s.charAt(s.length() - i - 1)) {
                break;
            }
            if (i == s.length() / 2 - 1) {
                isFind = true;
            }
        }
        return isFind;
    }

    public static boolean isABABBABA(String s) {
        boolean isFind = false;
        if (s.charAt(0) == s.charAt(2) && s.charAt(2) == s.charAt(5) && s.charAt(5) == s.charAt(7)
                && s.charAt(1) == s.charAt(3) && s.charAt(3) == s.charAt(4) && s.charAt(4) == s.charAt(6)) {
            isFind = true;
        }
        return isFind;
    }
}

2.知识点

1.日期类

一般使用第三代日期类

====创建类====
LocalDate//日期 年月日
LocalTime//时间 时分秒
LocalDateTime//日期时间 年月日 时分秒
====获取时间====
LocalDateTime ldt = LocalDateTime.now() //获取当前时间
LocalDate ldt = LocalDate.of(y, m, d);//获取一个指定时间 其中ymd是int
====增减时间====
ldt = ldt.plusDays(1)//增加一天
ldt = ldt.minusDays(1)//减少一天
plusMonths  plusWeeks  plusYears //月 周 年
2.字符串细节
//获取字符串的子串
str.substring(0, 4)//后边类似切片,指定位置,前开后闭
//字符串转int
int y = Integer.parseInt(str.substring(0, 4));//如何记parse呢? 死记吧  貌似没有找到好的方法
//其他对象形式转字符串
toString()
LocalDate n = LocalDate.of(y, m, d);//返回的形式是y-m-d
String str1 = n.toString().replace("-", "");
//替换字符串中的某个具体字符
replace()
3.连等的细节

在java中没有连等,所以无法使用a == b == c,只用使用a == b && b == c

5.门牌制作

在这里插入图片描述

1.代码

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        int count = 0;
        for (int i = 1; i <= 2020; i++) {
            int k = i;
            while(k!=0){
                if(k%10==2){
                    count++;
                }
                k /= 10;
            }
        }
        System.out.println(count);
    }
}

无注意细节

6.卡片

在这里插入图片描述

1.代码

public class kaPian_6 {
    public static void main(String[] args) {
        int num[] = new int[10];
        for (int i = 1; i < 4000; i++) {
            int k = i;
            while (k != 0) {
                num[k % 10]++;
                k /= 10;
            }
            for (int j = 0; j < 10; j++) {
                if (num[j] > 2021) {
                    System.out.println(i - 1);
                    break;
                }
            }
        }
    }
}

2.细节

1.使用了个很大的数,作为循环条件
2.当前的数,一定是已经组装不了了,所以最后需要-1,才能满足题目要求

7.数字三角形

在这里插入图片描述

1.代码

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int n = scan.nextInt();
        int arr[][] = new int[n+1][n+1];
        for (int i = 1; i < arr.length; i++) { //上左刚好多出来一行的思想!!!!记牢
            for (int j = 1; j <= i; j++) {
                arr[i][j] = scan.nextInt();
            }
        }
        //动态规划,求到每个数字路径的最大值,然后赋值给这个数字
        for (int i = 1; i < arr.length; i++) {
            for (int j = 1; j <= i; j++) {
                arr[i][j] = arr[i][j] + Math.max(arr[i-1][j-1],arr[i-1][j]);
            }
        }
        if(n%2==0){
            System.out.println(Math.max(arr[n][n/2+1],arr[n][n/2]));
        }
        if(n%2!=0){
            System.out.println(arr[n][n/2+1]);
        }
        scan.close();
    }
}

2.细节

1.上方和左方多一行的思想!方便操作 数字三角形
2.动态规划,从底向上记录值
3.关于向左向右步数不能相差1的理解:
说明最后在最后一层一定会落到中间
所以只需判断最后一层为奇数:中位数
偶数:中间两个取最大即可

8.成绩分析

在这里插入图片描述

1.代码

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int n = scan.nextInt();
        int m[] = new int[n];
        for (int i = 0; i < n; i++) {
            int score = scan.nextInt();
            m[i] = score;
        }
        int max = m[0];
        int min = m[0];
        double sum = m[0];
        for (int i = 1; i < n; i++) {
            if(m[i]>max){
                max = m[i];
            }
            if(m[i]<min){
                min = m[i];
            }
            sum += m[i];
        }
        double avg = sum / (double)n;
//        avg = (Math.round(avg*100))/100.0;
        System.out.println(max);
        System.out.println(min);
        System.out.printf("%.2f",sum/n);
        scan.close();
    }
}

2.细节

1.转double可以使用*1.0的操作
2.小数点后几位四舍五入,使用c思想 System.out.printf(“%.2f”,sum/n);

9.购物单

在这里插入图片描述

1.代码

public class Main{
  public static void main(String []args){
        int n = 50;
        Scanner scan = new Scanner(System.in);
        double sum = 0;
        while (n>0){
            String a = scan.next();
            double b = scan.nextDouble();
            String c = scan.next();
            sum += price(b,c);
            n--;
        }
        System.out.println((((int)sum + 100)/100*100));
    }
    public static double price(double b,String c){
        return b * zhekou(c);
    }
    public static double zhekou(String c){
        int p = 0;
        if(c.length()<=0){
            return 0;
        }
        if(c.length()==2){
            if(c.equals("半价")){
                p = 50;
            }else {
                String s = c.substring(0,1);
                p = Integer.parseInt(s);
                p *= 10;
            }
        }
        if(c.length() == 3){
            String s = c.substring(0,2);
            p = Integer.parseInt(s);
        }
        return p / 100.0;
  }
  scan.close;
}

2.细节

1.取整百的思想:System.out.println((((int)sum + 100)/100*100));
2.根据字符串的长度来分类

10.空间

在这里插入图片描述

1.代码

package lanqiao1_10;

public class NeiCun_10 {
//    首先,将 256MB 转换为比特(bits),因为 32位整数占用 32 比特。
//    然后,将结果除以 32,以确定可以容纳多少个 32位整数。
//            256MB 等于 256 * 1024 * 1024 字节,因为 1MB 等于 1024KB,1KB 等于 1024字节。所以:
//
//            256MB = 256 * 1024 * 1024 字节 = 268435456 字节
//
//    接下来,将字节数转换为比特:
//
//            268435456 字节 * 8 比特/字节 = 2147483648 比特
//
//    现在,将这个结果除以 32位:
//
//            2147483648 比特 / 32 比特/整数 = 67108864 个整数
//
//    因此,256MB 可以存储 67108864 个 32位二进制整数。

//    MB --> 字节 --> bit  1字节 = 8bit
}

2.细节

1.MB --> KB --> 字节 --> bit

1字节 = 8bit 32位就代表32个bit

2.整数溢出的问题

System.out.println(25610241024*8/32);//计算出来是负数,因为是大整数,使用L表示long类型
System.out.println(256L * 1024 * 1024 * 8 / 32);

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

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

相关文章

《向量数据库》——向量数据库MIlvus Cloud携手发起 AGI 黑客松,解锁行业更多可能

携手发起 AGI 黑客松,解锁行业更多可能 不止如此,双方在深度合作的基础上,还联合极客公园 Founder Park、智谱 AI 等,共同发起 AGI Playground Hackathon,旨在重新思考 AI Native 时代下的应用和服务,解决共同的行业发展问题。届时,Dify 将为参赛者提供接入了智谱 AI 模…

Domino中的源代码管理工具

大家好&#xff0c;才是真的好。 上次Notes/Domino 14 Drop2发布的时候&#xff0c;我们就提到&#xff0c;HCL一起发布了一款源代码管理工具。 这里还是简单科普一下&#xff0c;源代码管理工具&#xff0c;可以实现代码版本控制、备份&#xff0c;还有多个程序员之间的协作…

【ROOTFS】1-构建rootfs与nfs调试

简介 rootfs这一块比较简单&#xff0c;别怕&#xff0c;基本就是拿一个busybox过来&#xff0c;然后编译一下&#xff0c;就可以在指定的目录下生成一堆文件夹和文件&#xff0c;你可以把这个当成rootfs了&#xff1b; busybox: https://busybox.net/ 教程文档 【链接】 b…

绿盾控制台如何给未授权终端分配相应权限

环境&#xff1a; 绿盾控制台7.0 问题描述&#xff1a; 绿盾控制台如何给未授权终端分配相应权限 解决方案&#xff1a; 1.进入桌面管理系统 2.通过终端号&#xff0c;找到未授权终端下面&#xff0c;选择相应的未授权终端 3.点击鼠标右键&#xff0c;选择分配授权模块 4.下…

进阶课2——语音分类

语音分类主要是对语音从不同的维度进行识别和分类&#xff0c;这些维度可以包括语种、性别、年龄段、情绪、说话人身份等&#xff0c;具体如下&#xff1a; 语种分类&#xff1a;根据发音人的母语或者惯用语言&#xff0c;将语音分为不同的语种&#xff0c;例如中文、英文、法…

【UnityUGUI】UGUI六大组件和三大基本控件详解

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;UI_…

用ChatGPT编写Excel函数公式进行表格数据处理分析,so easy!

在用Excel进行数据处理分析时&#xff0c;经常需要编写不同的公式&#xff0c;需要了解大量的函数。有了ChatGPT&#xff0c;就很简单了&#xff0c;直接用自然语言描述自己的需求&#xff0c;然后让ChatGPT写出公式就好了。 例子1&#xff1a; Excel某个单元格的内容是&#…

【鸿蒙软件开发】ArkTS常见组件之单选框Radio和切换按钮Toggle

文章目录 前言一、Radio单选框1.1 创建单选框1.2 添加Radio事件1.3 场景示例二、切换按钮Toggle2.1 创建切换按钮2.2 创建有子组件的Toggle2.3 自定义样式selectedColor属性switchPointColor属性 2.4 添加事件2.5 示例代码 总结 前言 Radio是单选框组件&#xff0c;通常用于提…

【深入探究Java集合框架】从List到Map的完整指南

文章目录 &#x1f31f; Java集合框架&#x1f34a; Collection&#x1f389; List&#x1f389; Set&#x1f389; Map &#x1f34a; 集合的选择&#x1f389; 1. 有序并允许重复元素的集合 List&#x1f389; 2. 无序并且不允许重复元素的集合 Set&#x1f389; 3. 维护映射…

大语言模型(LLM)综述(一):大语言模型介绍

A Survey of Large Language Models 前言1. INTRODUCTION2. OVERVIEW2.1 大语言模型的背景2.2 GPT系列模型的技术演变 前言 随着人工智能和机器学习领域的迅速发展&#xff0c;语言模型已经从简单的词袋模型&#xff08;Bag-of-Words&#xff09;和N-gram模型演变为更为复杂和…

DVWA(一)

环境搭建 搭建DVWA Web渗透测试靶场_dvwa 白屏-CSDN博客 Brute Force&#xff08;暴力破解&#xff09; LOW 输入账号密码 burp suite拦截请求 请求发送至intruder attack type:选择cluster bomb,将用户名和密码Add添加 payload 1 添加用户名字典&#xff0c;payload 2 添…

网工实验手册:RSTP如何配置?

1. 实验目的 熟悉RSTP的应用场景掌握RSTP的配置方法 想要华为数通配套实验拓扑和配置笔记的朋友们点赞关注&#xff0c;评论区留下邮箱发给你! 2. 实验拓扑 实验拓扑如图所示&#xff1a; 图&#xff1a;RSTP的配置 3. 实验步骤 &#xff08;1&#xff09; …

计算机网络——计算机网络体系结构(3/4)-计算机网络体系结构分层思想举例

目录 发送请求报文 应用层构建HTTP请求报文 运输层添加TCP首部 网络层添加IP首部 数据链路层形成帧 物理层转化为比特流 路由器处理 服务器处理 发回响应报文 计算机网络体系结构分层思想举例 假设网络拓扑如下所示&#xff0c;主机属于网络N1&#xff0c;Web服务器属…

卫星结构。。。

• 下图介绍了现代卫星中常见的组件&#xff0c;它们被分为 卫星有效载荷 和 卫星总线 。 – 卫星有效载荷 包括任务专用设备&#xff0c;例如用于地球观测的高分辨率相机或用于电信的强大无线电硬件。 – 卫星总线 包括操作和维护卫星所需的所有组件。 • 它被设计为独立于有效…

CorelDRAW Graphics Suite2024完整版最新功能介绍

CorelDRAW平面设计软件通常也被叫做CDR&#xff0c;CDR广泛应用于排版印刷、矢量图形编辑及网页设计等领域。通过CorelDRAW体验极具个性的自由创作&#xff0c;大胆展现真我&#xff0c;交付出众的创意作品。CorelDRAW拥有矢量插图、页面布局、图片编辑和设计工具&#xff0c;无…

基于鱼鹰优化的BP神经网络(分类应用) - 附代码

基于鱼鹰优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码 文章目录 基于鱼鹰优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码1.鸢尾花iris数据介绍2.数据集整理3.鱼鹰优化BP神经网络3.1 BP神经网络参数设置3.2 鱼鹰算法应用 4.测试结果&#xff1a;5.M…

计算机组成原理 03 1.2.3 计算机的层次结构 编译程序 解释程序

文章目录 计算机系统的层次结构计算机层次结构之间的联系虚拟机和裸机编译型语言和解释型语言编译型语言和解释型语言的区别编译程序和解释程序的区别 如何理解编译/解释速度 和运行速度编译型语言和解释型语言的优劣编译 汇编 解释 编译程序和解释程序写题目的时候需要注意的点…

Java学习_day03_变量数据类型运算符

文章目录 变量定义声明赋值使用简化 数据类型基本数据类型整型浮点型布尔型字符型空型 引用数据类型数据类型转换自动类型转换强制类型转换 运算符算术运算符赋值运算符比较运算符逻辑运算符位运算符条件运算符一元运算符二元运算符三元运算符运算符优先级 变量 变量类似于数学…

毅速丨3D打印结合拓扑优化 让轻量化制造更容易

制造轻量化对于提高能源利用效率、提高产品性能和减少环境影响&#xff0c;推动制造业的绿色化、高质量发展具有重要的促进作用。 轻量化设计对许多领域都有着重要影响&#xff0c;尤其是那些需要降低能源消耗、提高运输效率或减少对环境影响的领域。如航空航天&#xff0c;轻量…

Qt学习:使用OpenGL绘制3D图形

文章目录 前言一、Qt下使用OpenGL绘制图形介绍二、示例完整代码总结 前言 文章中引用的内容均来自这本书中的原文&#xff1a;【Qt Creator快速入门_霍亚飞编著】&#xff0c;本文的示例也是在书中代码的基础上进行编写的&#xff08;其中部分代码使用原文编译不过&#xff0c…