第十二届蓝桥杯 2021年省赛真题 (Java 大学C组) 第二场

2023-11-20

蓝桥杯 2021年省赛真题 (Java 大学C组) 第二场

                #A 浮点数

                #B 求余

                #C 双阶乘

                #D 格点

                #E 整数分解

                #F 3 的倍数

                #G 特殊年份

                #H 小平方

                #I 完全平方数

                #J 负载均衡


#A 浮点数

题目:

问题描述

IEEE 754 规定一个双精度浮点数由 1位符号位、11 位阶和 52 位尾数组成(以上位数都表示二进制位数)。
请问,按此规定一个双精度浮点数占用几个字节?

答案提交

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

代码:

public class Test {

    public static void main(String[] args) {
        System.out.println(1 + 11 + 52 >> 3);
    }
}

答案:8

这道题就不用说了吧


#B 求余

题目:

问题描述

在 C/C++/Java/Python 等语言中,使用 % 表示求余,请问 2021%20 的值是多少?

答案提交

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

代码:

import java.util.*;
 
public class Main
{
    public static void main(String args[])
    {
        System.out.println(2021%20);
    }
}

答案:1

直接打印输出就行


#C 双阶乘

题目:

问题描述

一个正整数的双阶乘,表示不超过这个正整数且与它有相同奇偶性的所有正整数乘积。n 的双阶乘用 n!!表示。
例如:
3 ! ! = 3 × 1 = 3。
8 ! ! = 8 × 6 × 4 × 2 = 384。
11 ! ! = 11 × 9 × 7 × 5 × 3 × 1 = 10395。
请问,2021!! 的最后 5 位(这里指十进制位)是多少?
注意:2021!!=2021×2019×⋅⋅⋅×5×3×1。
提示:建议使用计算机编程解决问题。
答案提交

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

代码:

import java.util.*;
 
public class Main
{
    public static void main(String args[])
    {
        long num = 1;
		for (int i = 1; i <= 2021; i += 2) {
			num = num * i;
			num = num % 100000;
		}
		System.out.println(num);
    }
}

答案:59375

for循环从1循环到2021,然后挨个相乘,最后取余10000即可


#D 格点

题目:

问题描述

如果一个点 ( x , y ) 的两维坐标都是整数,即 x ∈ Z 且 y ∈ Z ,则称这个点为一个格点。
如果一个点 ( x , y ) 的两维坐标都是正数,即 x > 0  且 y > 0  ,则称这个点在第一象限。
请问在第一象限的格点中,有多少个点 ( x , y ) 的两维坐标乘积不超过 2021 ,即 x ⋅ y ≤ 2021。
提示:建议使用计算机编程解决问题。

答案提交

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

代码:

import java.util.*;
 
public class Main
{
    public static void main(String args[])
    {
        int a=0;
		for (int i = 1; i <= 2021; i++) {
			for (int j = 1; j <=2021; j++) {
				if (i*j<=2021) {
					a++;
					
				}
			}
		}
		System.out.println(a);
    }
}

答案:15698

两个坐标,两个for循环,判断当x*y<=2021的时候 计次 输出


#E 整数分解

题目:

问题描述

将 3 分解成两个正整数的和,有两种分解方法,分别是 3 = 1 + 2 和 3 = 2 + 1 。注意顺序不同算不同的方法。
将 5 分解成三个正整数的和,有 6 种分解方法,它们是 1 + 1 + 3 = 1 + 2 + 2 = 1 + 3 + 1 = 2 + 1 + 2 = 2 + 2 + 1 = 3 + 1 + 1。
请问,将 2021 分解成五个正整数的和,有多少种分解方法?

答案提交

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

代码:

public class Test {

    public static void main(String[] args) {
        long[][] dp = new long[6][2022];
        java.util.Arrays.fill(dp[1], 1);
        for (int k = 2; k <= 5; k++)
            for (int i = k; i <= 2021; i++)
                dp[k][i] = dp[k][i - 1] + dp[k - 1][i - 1];
        System.out.println(dp[5][2021]);
    }
}

答案:691677274345

这个有个for循环但是需要等结果,时间特长


#F 3 的倍数

题目:

问题描述

小蓝对 3 33 的倍数很感兴趣。现在他手头有三个不同的数 a , b , c ,他想知道,这三个数中是不是有两个数的和是 3 的倍数。
例如,当 a = 3 , b = 4 , c = 6 时,可以找到 a aa 和 c cc 的和是 3 的倍数。
例如,当 a = 3 , b = 4 , c = 7 时,没办法找到两个数的和是 3 的倍数。

输入格式

输入三行,每行一个整数,分别表示 a , b , c a, b, ca,b,c。

输出格式

如果可以找到两个数的和是 3 33 的倍数,输出 y e s yesyes,否则输出 n o nono。

测试样例1
Input:
3
4
6

Output:
yes

测试样例2
Input:
3
4
7

Output:
no
评测用例规模与约定

对于所有评测用例,1 ≤ a ≤ b ≤ c ≤ 100 。

代码:

import java.util.*;
 
public class Main
{
    public static void main(String args[])
    {
        Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int b = sc.nextInt();
		int c = sc.nextInt();
		for (int i = 1; i <= 1000; i++) {
			if ((a + b) % 3 == 0 || (a + c) % 3 == 0 || (b + c) % 3 == 0) {
				System.out.println("yes");
				break;
			} else {
				System.out.println("no");
				break;
			}
		}
    }
}

直接循环判断相加取余3等于0输出yes否则no 


#G 特殊年份

题目:

问题描述

今年是 2021 年,2021 这个数字非常特殊,它的千位和十位相等,个位比百位大 1 ,我们称满足这样条件的年份为特殊年份。
输入 5 个年份,请计算这里面有多少个特殊年份。

输入格式

输入 5  行,每行一个 4 位十进制数(数值范围为 1000 至 9999 ),表示一个年份。

输出格式

输出一个整数,表示输入的 5 个年份中有多少个特殊年份。

测试样例1
Input:
2019
2021
1920
2120
9899

Output:
2

Explanation:
2021 和 9899 是特殊年份,其它不是特殊年份。

代码:

import java.util.*;
 
public class Main
{
    public static void main(String args[])
    {
        //Scanner sc = new Scanner(System.in);
		// int count = 0;
		// for (int i = 0; i < 5; i++) {
		// char[] arr = sc.nextLine().toCharArray();
		// if (arr[0] == arr[2] && arr[3] - arr[1] == 1) {
		// count++;
		// }
		// }
		// System.out.println(count);

		Scanner sc = new Scanner(System.in);
		String[] year = new String[5];
		int count = 0;
		for (int i = 0; i < 5; i++) {
			year[i] = sc.nextLine();
		}
		for (int i = 0; i < year.length; i++) {
			int a = year[i].charAt(0);// 千位
			int b = year[i].charAt(1);// 百位
			int c = year[i].charAt(2);// 十位
			int d = year[i].charAt(3);// 个位
			if (a == c && d - b == 1) {
				count++;
			}
		}
		System.out.println(count);
    }
}

两种方式 哪个都可以 都是用数组判断下标 


#H 小平方

题目:

问题描述

小蓝发现,对于一个正整数 n 和一个小于 n 的正整数 v,将 v 平方后对 n 取余可能小于 n 的一半,也可能大于等于 n 的一半。
请问,在 1 到 n − 1 中,有多少个数平方后除以 n 的余数小于 n 的一半。
例如,当 n = 4 时,1 , 2 , 3 的平方除以 4 的余数都小于 4 的一半。
又如,当 n = 5 时,1 , 4 的平方除以 5 的余数都是 1 ,小于 5 的一半。而 2 , 3 的平方除以 5 的余数都是 4 ,大于等于 5 的一半。

输入格式

输入一行包含一个整数 n 。

输出格式

输出一个整数,表示满足条件的数的数量。

测试样例1
Input:
5

Output:
2
评测用例规模与约定

对于所有评测用例,1 ≤ n ≤ 10000 。

代码:

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        int n = new Scanner(System.in).nextInt();
        int ans = 0, mid = n + 1 >> 1;
        for (int i = 1; i < n; i++)
            if (i * i % n < mid) ans++;
        System.out.println(ans);
    }
}

#I 完全平方数

题目:

问题描述

一个整数 a 是一个完全平方数,是指它是某一个整数的平方,即存在一个整数 b ,使得 a = b^2 。
给定一个正整数 n ,请找到最小的正整数 x ,使得它们的乘积是一个完全平方数。

输入格式

输入一行包含一个正整数 n 。

输出格式

输出找到的最小的正整数 x 。

测试样例1
Input:
12

Output:
3
测试样例2
Input:
15

Output:
15
评测用例规模与约定

对于 30% 的评测用例,1 ≤ n ≤ 1000 ,答案不超过 1000 10001000。
对于 60% 的评测用例,1 ≤ n ≤ 10^8 ,答案不超过 10^8。
对于所有评测用例,1 ≤ n ≤ 1 0^12 ,答案不超过 10^12。

代码:

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        long n = new Scanner(System.in).nextLong(), x = 1;
        for (int k = 2, i, j; k <= n; k ++) {
            i = 0;
            while (n % k == 0) {
                n /= k;
                i++;
            }
            if (i > 0) {
                j = -i & i;
                if (i != 1 && i == j) continue;
                x *= Math.pow(k, (j << 1) - i);
            }
        }
        System.out.println(x);
    }
}

#J 负载均衡

题目:

测试样例1
Input:
2 6
5 5
1 1 5 3
2 2 2 6
3 1 2 3
4 1 6 1
5 1 3 3
6 1 3 4

Output:
2
-1
-1
1
-1
0

Explanation:
时刻 1,第 1 个任务被分配到第 1 台计算机,耗时为 5 ,这个任务时刻 6 会结束,占用计算机 1 的算力 3。
时刻 2,第 2 个任务需要的算力不足,所以分配失败了。
时刻 3,第 1 个计算机仍然正在计算第 1 个任务,剩余算力不足 3,所以失败。
时刻 4,第 1 个计算机仍然正在计算第 1 个任务,但剩余算力足够,分配后剩余算力 1。
时刻 5,第 1 个计算机仍然正在计算第 1, 4 个任务,剩余算力不足 4,失败。
时刻 6,第 1 个计算机仍然正在计算第 4 个任务,剩余算力足够,且恰好用完。

代码:

import java.util.Scanner;
 
public class Main {
 
	public static int[][] T = new int[10005][10005]; //T[i][j]存储的是i号计算机在时刻j还剩余多少算力
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in = new Scanner(System.in);
		int n = in.nextInt();  //计算机台数
		int m = in.nextInt();  //要分配的任务数
		//输入每台计算机的算力
		for(int i = 1; i <= n; i++)
		{
			int cacl = in.nextInt();
			//初始化存放各计算机当前剩余算力的数组T
			for(int j = 1; j <= 5000; j++)
			{
				T[i][j] = cacl;
			}
		}
		//输入m次任务分配详情,并判断本次分配结果
		while(m-- > 0)
		{
			int ai = in.nextInt();  //时刻ai
			int bi = in.nextInt();  //分配给几号计算机
			int ci = in.nextInt();  //任务占用耗时
			int di = in.nextInt();  //任务消耗的算力
			if(T[bi][ai] < di)  //算力不够,无法分配,取消该次分配
			{
				System.out.println(-1);
				continue;
			}
			for(int j = ai; j < ai + ci; j++)  //占用时长为ci,消耗算力di
			{
				T[bi][j] -= di;
			}
			System.out.println(T[bi][ai]);
		}
		
		in.close();
	}
 
}

最后几道题有点难,总之加油吧!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

第十二届蓝桥杯 2021年省赛真题 (Java 大学C组) 第二场 的相关文章

随机推荐

  • 标题Ant Design of Vue 组件库中Modal“确认“按钮和“取消“按钮成英文状态

    标题Ant Design of Vue 组件库中Modal 确认 按钮和 取消 按钮成英文状态 因为是国际化的原因 造成确定按钮和取消按钮变成英文 需要设置 okText 与 cancelText 以自定义按钮文字 div div
  • Battery Charging Specification(BC1.2) 和 QC2.0 笔记

    BC2 说明 参数说明 标准检测流程 VBUS检测 VBUS Detect PD 移动设备 中有个检测VBUS是否有效的电路 电路有一个参考值 高于这个值就认为是VBUS有效了 这个参考值不是固定的 设计的时候保证它在0 8V 4V之间就可
  • [机器学习与scikit-learn-20]:算法-逻辑回归-线性逻辑回归linear_model.LogisticRegression与代码实现

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 机器学习与scikit learn 20 算法 逻辑回归 线性逻辑回归linear model LogisticRegression与代码实
  • Web服务器群集:LVS+Keepalived高可用群集

    目录 一 理论 1 Keepalived 2 VRRP协议 虚拟路由冗余协议 3 部署LVS Keepalived 高可用群集 二 实验 1 LVS Keepalived 高可用群集 三 问题 1 备服务器网卡启动报错 四 总结 一 理论
  • 平衡二叉排序树插入结点的学习总结

    最近写了平衡二叉排序树代码 在这里对自己的理解做一下总结 下面的文字 更多的是把我自己的遇到的理解上的问题和思路讲清楚 可能不能让你一下就看明白 这是我的问题 网上其实有很多写的很好的文章 我也是学他们的 然后通过写文章来考研自己是不是真的
  • Redis之坑:Redis与MySQL中事务的区别

    Redis之坑 spring data redis中的Redis事务 Redis之坑 理解Redis事务 Redis之坑 Redis与MySQL中事务的区别 Transaction之坑 数据库事务 Transaction之坑 Spring中
  • 【模型剪枝】——开源项目总结

    修剪是一种常用的压缩神经网络模型的技术 修剪方法探索模型权重 参数 中的冗余 并尝试删除 修剪冗余和非关键权重 冗余元素从模型中修剪 它们的值归零 我们确保它们不参与反向传播过程 pytorch pruning https github c
  • 设置定时任务为每天凌晨2点执行和每小时执行一次?

    每天凌晨2点 0 0 2 和每天隔一小时 0 1 例1 每隔5秒执行一次 5 例2 每隔5分执行一次 0 5 在26分 29分 33分执行一次 0 26 29 33 例3 每天半夜12点30分执行一次 0 30 0 注意日期域为0不是24
  • axure9怎么让页面上下滑动_Axure动态面板(上下左右滑动页面)

    手机端交互中 页面的上下左右滑动是常用的交互形态 今天给大家分享一下如何使用Axure来进行模拟 这里使用动态面板来实现 如果对动态面板不是很了解的同学 请查看专栏里的 动态面板入门教程 先看效果 开工之前我们我们先分析一下 滑动效果的用处
  • 利用Android Lost通过互联网或短信远程控制安卓设备

    利用Android Lost通过互联网或短信远程控制安卓设备 作者 Jack Wallen 杰克 瓦伦翻译 PurpleEndurer 2014 11 15第1版 使用智能手机要考虑的一个至关重要的因素是安全性 当然 安全问题不仅仅存在于平
  • java springboot -- MultipartFile -图片上传到远程服务器上

    新增文件 param file return private boolean saveFile MultipartFile file try 文件保存路径 String filePath A merchant 映射的地址 String fi
  • Springboot+vue+hadoop+java图书个性化推荐系统

    前台首页功能模块 3 1首页 图书个性化推荐系统 在前台首页可以查看首页 图书信息 好书推荐 留言反馈 个人中心 后台管理等内容 如图 3 2图书信息 在图书信息页面通过查看图书编号 图书名称 图书类别 图片 作者 出版社 版次 数量 点击
  • 背单词(持续更新)

    文章目录 星火雅思周计划 229 复习 考研 352 353 职场俚语 1 2 7分 1 2 3 4 5 6 7 8 haochi fun 1 2 GRE 1 2 托福 249 247 248 245 246 243 244 241 242
  • 3WebGL shader准备工具

    VSCode安装 VSCode 全称 Visual Studio Code 是一款由微软开发且跨平台的免费源代码编辑器 该软件支持语法高亮 代码自动补全 又称 IntelliSense 代码重构 查看定义功能 并且内置了命令行工具和 Git
  • Unity保存图片到相册

    Unity保存图片到Android相册 Java 纯文本查看 复制代码 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
  • ESXI 7.0 版本配置N卡显卡直通

    ESXI 7 版本配置N卡显卡直通 前因 ESXI版本太新 网上啥参考资料没有 显卡直通各种问题 虚机一装显卡驱动就直接把宿主机直接整挂了 于是各种查资料 各种尝试 终于搞定直通问题 配置 名称 版本 服务器 DELL R720 ESXI
  • MySQL中的DML、DDL、DCL到底是什么玩意呢?

    个人主页 极客小俊 作者简介 web开发者 设计师 技术分享博主 希望大家多多支持一下 我们一起进步 如果文章对你有帮助的话 欢迎评论 点赞 收藏 加关注 引言 一直以来 很多人分不清这三个东西到底是什么简称 代表什么 至在面试中遇到可能会
  • nginx的location、root、alias指令用法和区别

    亲测可用 若有疑问请私信 nginx指定文件路径有两种方式root和alias 指令的使用方法和作用域 root 语法 root path 默认值 root html 配置段 http server location if alias 语法
  • Arduino动手做(48)---三轴ADXL345模块

    37款传感器与模块的提法 在网络上广泛流传 其实Arduino能够兼容的传感器模块肯定是不止37种的 鉴于本人手头积累了一些传感器和模块 依照实践 动手试试 出真知的理念 以学习和交流为目的 这里准备逐一做做实验 不管能否成功 都会记录下来
  • 第十二届蓝桥杯 2021年省赛真题 (Java 大学C组) 第二场

    蓝桥杯 2021年省赛真题 Java 大学C组 第二场 A 浮点数 B 求余 C 双阶乘 D 格点 E 整数分解 F 3 的倍数 G 特殊年份 H 小平方 I 完全平方数 J 负载均衡 A 浮点数 题目 问题描述 IEEE 754 规定一个