IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 蓝桥杯第一次模拟赛JAVA题解 -> 正文阅读

[Java知识库]蓝桥杯第一次模拟赛JAVA题解

目录

第一题🎈

第二题🎈

第三题🎈

第四题🎈

第五题🎈

第六题🎈

第七题🎈

第八题🎈

第九题🎈

第十题🎈


第一题🎈

class D1{
    void method(){
        int a=0;
        for(int i=10000;i<=90000;i++){
            if(i%128==0)a++;
        }
        System.out.println(a);
    }
}

625

第一题没啥难度,直接白给

第二题🎈

class D2{
    void method(){

        int a=0;
        for(int i=1000;i<=9999;i++){
            char[] c=Integer.toString(i).toCharArray();
            if(c[0]==c[2]&&(c[3]-c[1]==1))a++;
        }
        System.out.println(a);
    }
}

81

这个题目呢,会用toStrng()和toCharArray()就变得很简单

注意一点:

个位的数组下标是3,百位数组下标是1(数组下标从左往右数,个十百千位从右往左数)

第三题🎈

3628800

这个题目是白给题,纯粹排列组合计数,1-21中10个偶数,即10!

第四题🎈

? 5

这个题目因为台阶数值给定并且比较小,可以直接在草稿纸上写,1到5到5到4到-1到-9是得分为最大值的走法,没有什么难度

第五题🎈

class D5 {
    void method() {
        Scanner in = new Scanner(System.in);
        int a[] = new int[20];
        for (int i = 0; i < 20; i++) {
            a[i] = in.nextInt();
        }
        int t = 0;
        for (int m = 0; m < 20; m++) {
            for (int n = m + 1; n < 20; n++) {
                for (int k = n + 1; k < 20; k++) {
                    if (a[m] < a[n] && a[n] < a[k]) {
                        t++;
                    }
                }
            }
        }
        System.out.println(t);
    }
}

?565

数值范围比较小,可以直接三重循环暴力解

第六题🎈

?看到这个题目的时候,人都傻掉了.....(小声bb:这不是小学数学题吗?)

第七题🎈

这个拿纸画一下就OK,当n*m为奇数时,输出的数为(n*m)/2 +1,偶数时为(m*n)/2

注意一点,要用long来定义一下输出的数,防止溢出(题目末尾有一个测评范围)

第八题🎈

class test8{
    void method(){
        Scanner scanner = new Scanner(System.in);
        int l=scanner.nextInt();
        int k=scanner.nextInt();
        int n=scanner.nextInt();
        int ans=0;
        int []a=new int[100010];
        a[0]=0;
        a[n+1]=l+1;//让首尾元素也满足要求
        for (int m=1;m<=n;m++){
            a[m]=scanner.nextInt();
        }
        for (int i=1;i<=n+1;i++){
            ans+=(a[i]-a[i-1]-1)/k;
        }
        System.out.println(ans);
    }
}

?这个题目还是比较有意思的!

第九题🎈

class D9{
    void method(){
        /**
         * 根据杨辉三角定理来算组合数
         */
       int t=1000000007;
        Scanner scanner = new Scanner(System.in);
        int n=scanner.nextInt();
        int [][]c=new int[1001][1001];//如果n特别大的话这个地方也可以用链表
        c[1][0]=c[1][1]=1;
        for(int i=2;i<=n;i++){
            c[i][0]=1;//每行第一个元素都是1
            for (int j=1;j<=i;j++){
                c[i][j]=(c[i-1][j]+c[i-1][j-1])%t;//杨辉三角求元素的公式
            }
        }
        System.out.println(c[n-1][(n-1)/2]);
    }
}

这个题归根结底也是一个组合数问题,最主要在于发现其中的排列组合规律 ,并且联想到杨辉三角求组合数。

第十题🎈

class D10{
    void method(){
        Scanner in = new Scanner(System.in);
        int i=in.nextInt();
        int j=in.nextInt();
        int[][] a=new int[i][j];
        for(int m=0;m<i;m++){
            for (int n=0;n<j;n++){
                a[m][n]=in.nextInt();
            }
        }
        for(int m=0;m<i;m++){
            for (int n=0;n<j;n++) {
                if (a[m][n] == 1) {
                    if (m != i-1 && n != j-1 && m != 0 && n != 0) {
                        if (a[m + 1][n] == 0 && a[m - 1][n] == 0 && a[m][n + 1] == 0 && a[m][n - 1] == 0) {
                            System.out.println("NO");
                            return;
                        }
                    }
                    if ( n != j-1 && m != 0 && n != 0) {
                        if ( a[m - 1][n] == 0 && a[m][n + 1] == 0 && a[m][n - 1] == 0) {
                            System.out.println("NO");
                            return;
                        }
                    }
                    if (m != i-1 && m != 0 && n != 0) {
                        if (a[m + 1][n] == 0 && a[m - 1][n] == 0 && a[m][n - 1] == 0) {
                            System.out.println("NO");
                            return;
                        }
                    }
                    if (m != i-1 && n != j-1  && n != 0) {
                        if (a[m + 1][n] == 0 && a[m][n + 1] == 0 && a[m][n - 1] == 0) {
                            System.out.println("NO");
                            return;
                        }
                    }
                    if (m != i-1 && n != j-1 && m != 0 ) {
                        if (a[m + 1][n] == 0 && a[m - 1][n] == 0 && a[m][n + 1] == 0 ) {
                            System.out.println("NO");
                            return;
                        }
                    }
                }
            }
        }
        System.out.println("YES");
        return;
    }
}

这个题目的话呢,难度是不怎么难,思路很简单,用暴力解就OK;

写完题目之后才发现我这个输入有点问题,不能连续输入比如说:

题目要求输入:

3 6

111111

111000

100111

而我这二维数组输入:

3 6

1 1 1 1 1 1

1 1 1 0 0 0

1 0 0 1 1 1

后续再容我想想,今天写题解的时候才发现我当时写错了,哈哈哈!

最后总结如下:

???? 模拟赛的题目比真题要简单很多(可能是官方怕出太难了,把他的金主爸爸们吓跑吧,哈哈哈哈哈),这次模拟赛就当是给自己重新熟悉一下基础语法知识吧!

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-12-16 17:32:20  更:2021-12-16 17:32:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 5:47:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码