🐏小怜怜的简介:
💖博客主页:浣熊小怜怜
🚀年龄:21 大二在读
💪爱好:干饭,运动,码代码,看书,音乐
🎉欢迎关注🔍点赞👍收藏🎇留言📙
🎄有任何疑问,欢迎留言讨论!!!
目录
🎈A 浮点数
本题总分:5 分
🎯问题描述:
IEEE 754 规定一个双精度浮点数由 1 位符号位、11 位阶和 52 位尾数组成(以上位数都表示二进制位数)。 请问,按此规定一个双精度浮点数占用几个字节?
🎈B 求余 ☑️
本题总分:5 分
🎯问题描述:
在 C/C++/Java/Python 等语言中,使用 % 表示求余,请问 2021%20 的值是多少?
package com.year2020SC;
public class demo {
public static void main(String[] args) {
System.out.println(2021%20);
}
}
1
🎈C 双阶乘 ☑️
本题总分:10 分
🎯问题描述:
一个正整数的双阶乘,表示不超过这个正整数且与它有相同奇偶性的所有正整数乘积。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 。 提示:建议使用计算机编程解决问题。
package com.year2020SC;
import java.math.BigInteger;
//2021 ! ! = 2021 × 2019 × ⋅ ⋅ ⋅ × 5 × 3 × 1 。
public class demo {
public static void main(String[] args) {
long n = 1;
BigInteger sum = BigInteger.valueOf(n);
for (int i = 1; i <= 2021; i = i + 2) {
sum = sum.multiply(BigInteger.valueOf(i));
}
System.out.println(sum);
}
}
59375
🎈D 格点 ☑️
本题总分:10 分
🎯问题描述:
如果一个点 ( x , y ) 的两维坐标都是整数,即 x ∈ Z且 y ∈ Z ,则称这个点为一个格点。 如果一个点 ( x , y ) 的两维坐标都是正数,即 x > 0 且 y > 0 ,则称这个点在第一象限。 请问在第一象限的格点中,有多少个点 ( x , y )的两维坐标乘积不超过 2021 ,即 x ⋅ y ≤ 2021 。 提示:建议使用计算机编程解决问题。
package com.year2020SC;
public class demo {
public static void main(String[] args) {
// x ⋅ y ≤ 2021
int count=0;
for (int i = 1; i <10000 ; i++) {
for (int j = 1; j <10000; j++) {
if (i*j<=2021){
count++;
}
}
}
System.out.println(count);
}
}
15698
🎈E 整数分解
本题总分:15 分
🎯问题描述:
将 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 分解成五个正整数的和,有多少种分解方法?
for循环太复杂~~运行结束不了
🎈F 3 的倍数 ☑️
时间限制: 1.0s 内存限制: 512.0MB
本题总分: 15 分
🎯问题描述:
小蓝对 3 的倍数很感兴趣。现在他手头有三个不同的数 a , b , c ,他想知道,这三个数中是不是有两个数的和是 3 的倍数。
例如,当 a = 3 , b = 4 , c = 6 时,可以找到 a 和 c 的和是 3 的倍数。 例如,当 a = 3 , b = 4 , c = 7 时,没办法找到两个数的和是 3 的倍数。
输入格式输入三行,每行一个整数,分别表示 a , b , c 。输出格式如果可以找到两个数的和是 3 的倍数,输出 y e s ,否则输出 n o 。
测试样例1
Input: 3 4 6 Output: yes 1 2 3 4 5 6 7测试样例2
Input: 3 4 7 Output: no
package com.year2020SC;
import java.math.BigInteger;
import java.util.Scanner;
public class demo {
public static void main(String[] args) {
//找到两个数的和是 3 的倍数,输出 y e s ,否则输出 n o 。
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int c = sc.nextInt();
int count = 0;
if ((a + b) % 3 == 0) {
count++;
}
if ((b + c) % 3 == 0) {
count++;
}
if ((c + a) % 3 == 0) {
count++;
}
if (count>=1){
System.out.println("yes");
}else {
System.out.println("no");
}
}
}
🎈G 特殊年份☑️
时间限制: 1.0s 内存限制: 512.0MB
本题总分:20 分
🎯问题描述:
今年是 2021 年,2021 这个数字非常特殊,它的千位和十位相等,个位比百位大 1,我们称满足这样条件的年份为特殊年份。 输入 5 个年份,请计算这里面有多少个特殊年份。输入格式输入 5 行,每行一个 4 位十进制数(数值范围为 1000至 9999),表示一个年份。
输出格式
输出一个整数,表示输入的 5 个年份中有多少个特殊年份。
测试样例1
Input: 2019 2021 1920 2120 9899 Output: 2 Explanation: 2021 和 9899 是特殊年份,其它不是特殊年份。
package com.year2020SC;
import java.util.Scanner;
public class demo {
public static void main(String[] args) {
//千位和十位相等,个位比百位大 1
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int c = sc.nextInt();
int d = sc.nextInt();
int e = sc.nextInt();
int count = 0;
if (is(a)) {
count++;
}
if (is(b)) {
count++;
}
if (is(c)) {
count++;
}
if (is(d)) {
count++;
}
if (is(e)) {
count++;
}
System.out.println(count);
}
public static boolean is(int n) {
int g = n % 10;
int s = n / 10 % 10;
int b = n / 100 % 10;
int q = n / 1000;
boolean flag = false;
if (q == s && g == (b + 1)) {
flag = true;
}
return flag;
}
}
🎈H 小平方☑️
时间限制: 1.0s 内存限制: 512.0MB
本题总分:20 分
🎯问题描述:
小蓝发现,对于一个正整数 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
package com.year2020SC;
import java.util.Scanner;
public class demo {
public static void main(String[] args) {
//在1到n−1中,有多少个v平方后除以 n 的余数小于 n 的一半
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int count = 0;
for (int v = 1; v < n; v++) {
if (v * v % n < n / 2) {
count++;
}
}
System.out.println(count);
}
}
🎈I 完全平方数☑️
时间限制: 2.0s 内存限制: 512.0MB
本题总分:25 分
🎯问题描述:
一个整数 a 是一个完全平方数,是指它是某一个整数的平方,即存在一个整数 b ,使得 a = b ^2 。 给定一个正整数 n,请找到最小的正整数 x ,使得它们的乘积是一个完全平方数。
输入格式
输入一行包含一个正整数 n 。
输出格式
输出找到的最小的正整数 x 。
测试样例1
Input: 12 Output: 3测试样例2
Input: 15 Output: 15
package com.year2020SC;
import java.util.Scanner;
public class demo {
public static void main(String[] args) {
//给定一个正整数 n,请找到最小的正整数 x ,使得它们的乘积是一个完全平方数。
Scanner sc = new Scanner(System.in);
long n = sc.nextLong();
for (int x = 1; x <= n; x++) {
long m = n * x;
if (isWan(m)) {
System.out.println(x);
break;
}
}
}
public static boolean isWan(long n) {
boolean flag = false;
if (Math.sqrt(n) % 1 == 0) {
flag = true;
}
return flag;
}
}
🎈J 负载均衡
时间限制: 2.0s 内存限制: 512.0MB
本题总分: 25 分
🎯问题描述:
测试样例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 个任务,剩余算力足够,且恰好用完。
🎉写在最后
生命有限,请浪费在更美好的事物上。