java蓝桥杯前10题总结

文章目录

    • 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));//字符串转intLocalDate 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.mzph.cn/news/114419.shtml

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

相关文章

最强英文开源模型LLaMA架构探秘,从原理到源码

导读&#xff1a; LLaMA 65B是由Meta AI&#xff08;原Facebook AI&#xff09;发布并宣布开源的真正意义上的千亿级别大语言模型&#xff0c;发布之初&#xff08;2023年2月24日&#xff09;曾引起不小的轰动。LLaMA的横空出世&#xff0c;更像是模型大战中一个搅局者。虽然它…

AI篇-如何用AI辅助对图片进行鉴赏

前言 目录 前言 一、观众侧鉴赏图片 方法1&#xff1a;直接将图片发给文心一言&#xff0c;让文心一言分析。 方法2&#xff08;正确方法&#xff09;&#xff1a;将图片简单介绍并把图片发给文心一言&#xff0c;让文心一言分析。 二、作者介绍图片 方法&#xff08;正…

(一)docker:建立oracle数据库

前言&#xff0c;整个安装过程主要根据docker-images/OracleDatabase/SingleInstance /README.md &#xff0c;里边对如何制作容器讲的比较清楚&#xff0c;唯一问题就是都是英文&#xff0c;可以使用谷歌浏览器自动翻译成中文&#xff0c;自己再对照英文相互参照来制作提前准备…

docker报错问题解决:Error Invalid or corrupt jarfile app.jar

文章目录 1.问题描述2.问题分析3.问题解决 1.问题描述 此时处在 /home/ubuntu/app 目录下&#xff0c;并且在该目录下有一个 jenkins-0.0.1-SNAPSHOT.jar。 我在 /home/ubuntu/app 目录下执行了 docker 容器运行命令&#xff1a; # 映射 8859 端口 # 容器名为 jenkins-demo #…

使用Dockerfile生成docker镜像和容器的方法记录

一、相关介绍 Docker 是一个开源的容器化平台&#xff0c;其中的主要概念是容器和镜像。 容器是 Docker 的运行实例。 它是一个独立并可执行的软件包&#xff0c;包含了应用程序及其依赖的所有组件&#xff08;如代码、运行时环境、系统工具、库文件等&#xff09;。容器可以在…

我的电子萝卜刀火了吗?

引言 大家好&#xff0c;我是亿元程序员&#xff0c;一位有着8年游戏行业经验的主程。 笔者在上一篇文章《萝卜刀真的太危险了,于是我用Cocos做了一个》中说到因女儿从学校回来之后想要我给她买一把萝卜刀被我拒绝&#xff0c;但是又想要让她体验一下&#xff0c;因此用Cocos…

REDIS命令

常见文件名 Redis-cli使用命令 1、启动Redis2、连接Redis3、停止Redis4、发送命令 1、redis-cli带参数运行&#xff0c;如&#xff1a;2、redis-cli不带参数运行&#xff0c;如&#xff1a;5、测试连通性key操作命令 获取所有键查询键是否存在删除键查询键类型移动键查询key的生…

零基础学python:错误与异常

嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 语法错误 异常&#xff1a;大多数的异常都不会被程序处理&#xff0c;都以错误信息的形式展现在这里 &#x1f447; &#x1f447; &#x1f447; 更多精彩机密、教程&#xff0c;尽在下方&#xff0c;赶紧点击了解吧~ pyth…

Ubuntu源码编译samba

概述 本人最近研究samba的源码&#xff0c;但是在源码编译的时候&#xff0c;本以为直接config,make,make install。没想到编译过程中碰到很多麻烦&#xff0c;主要是各种依赖问题。 基于此&#xff0c;本文把samba编译的详细过程记录下来&#xff0c;以供再次研究借鉴。 软件…

力扣刷题 day50:10-20

1.存在重复元素 给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 &#xff0c;返回 true &#xff1b;如果数组中每个元素互不相同&#xff0c;返回 false 。 方法一&#xff1a;集合去重 #方法一&#xff1a;集合去重 def containsDuplicate(nums):return len(n…

AWS SAA-C03考试知识点整理

S3&#xff1a; 不用于数据库功能 分类&#xff1a; S3 Standard &#xff1a;以便频繁访问 S3 Standard-IA 或 S3 One Zone-IA &#xff1a; 不经常访问的数据 Glacier&#xff1a; 最低的成本归档数据 S3 Intelligent-Tiering智能分层 &#xff1a;存储具有不断变化或未知访问…

KubeSphere一键安装部署K8S集群(单master节点)-亲测过

1. 基础环境优化 hostnamectl set-hostname master1 && bash hostnamectl set-hostname node1 && bash hostnamectl set-hostname node2 && bashcat >> /etc/hosts << EOF 192.168.0.34 master1 192.168.0.45 node1 192.168.0.209…

从零开始,学好 Python 从大一新生自我介绍开始

从零开始&#xff0c;学好 Python 从大一新生自我介绍开始 大家好&#xff0c;我叫xxx,今年18岁&#xff0c;刚刚入学不久。我决定从零开始系统学习Python编程语言。 Python是一种解释型、交互式和脚本编程语言。它由荷兰人Guido van Rossum在1991年左右创立&#xff0c;语法简…

Python学习第2天-安装pycharm

文章目录 前言一、下载二、安装1.选择安装目录2.安装配置 总结 前言 好用的工具可以极大地提高生产力&#xff0c;开发Python推荐使用jetbrains全家桶的pycharm。 一、下载 通过官网下载安装包。 二、安装 1.选择安装目录 2.安装配置 一路Next&#xff0c;安装完成 总结 …

机器学习(23)---Boosting tree(课堂笔记)

文章目录 一、知识记录二、题目2.1 题目12.2 题目22.3 题目三2.4 答案书写 一、知识记录 二、题目 2.1 题目1 2.2 题目2 2.3 题目三 T 4 T_4 T4​中 0.15 0.15 0.15 改为 − 0.16 -0.16 −0.16&#xff0c; − 0.22 -0.22 −0.22 改为 0.11 0.11 0.11。 2.4 答案书写

python 之计算矩阵乘法

文章目录 总的介绍例子 总的介绍 np.matmul 是NumPy库中的矩阵乘法函数&#xff0c;用于执行矩阵乘法操作。矩阵乘法是线性代数中的一种常见操作&#xff0c;用于将两个矩阵相乘以生成新的矩阵。在神经网络、机器学习和科学计算中&#xff0c;矩阵乘法经常用于变换和组合数据。…

点云cloudpoint生成octomap的OcTree的两种方法以及rviz可视化

第一种&#xff1a;在自己的项目中将点云通过ros的topic发布&#xff0c;用octomap_server订阅点云消息&#xff0c;在octomap_server中生成ocTree 再用rviz进行可视化。 创建工作空间&#xff0c;记得source mkdir temp_ocotmap_test/src cd temp_ocotmap_test catkin_make…

进制转换(二进制、八进制、十进制、十六进制)

目录 一&#xff1a;十进制转换为二进制、八进制、十六进制 &#xff08;1&#xff09;整数转换 &#xff08;2&#xff09;小数转换 1&#xff09;十进制转二进制 2&#xff09;十进制转八进制 3&#xff09;十进制转十六进制 二&#xff1a;二进制、八进制、十六进制转…

【大模型应用开发教程】02_LangChain介绍

LangChain介绍 什么是 LangChain1. 模型输入/输出2. 数据连接3. 链&#xff08;Chain&#xff09;4. 记忆&#xff08;Meomory&#xff09;5. 代理&#xff08;Agents&#xff09;6.回调&#xff08;Callback&#xff09;在哪里传入回调 ?你想在什么时候使用这些东西呢&#x…

A_搜索(A Star)算法

A*搜索(A Star) 不同于盲目搜索&#xff0c;A算法是一种启发式算法(Heuristic Algorithm)。 上文提到&#xff0c;盲目搜索对于所有要搜索的状态结点都是一视同仁的&#xff0c;因此在每次搜索一个状态时&#xff0c;盲目搜索并不会考虑这个状态到底是有利于趋向目标的&#x…