A填空题
问题描述
如果整数a是整数b的整数倍,则称b是a的约数。
请问,有多少个正整数是2020的约数。
答案提交
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
参考答案
12
public class Main {
public static void main(String[] args) {
int ans=0;
for(int i=1;i<=2020;i++) {
if(2020%i==0) {
ans++;
}
}
System.out.println(ans);
}
}
B填空题
问题描述
如果一个mp3文件占用磁盘的大小是4MB,小蓝的硬盘还剩下100GB的空间,请问他还可以放多少个这样的mp3文件?
答案提交
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
参考答案
25600
//1GB=1024MB
1MB = 1024KB
1KB = 1024字节(byte)
1字节 = 8位(bits)
public class Main {
public static void main(String[] args) {
int ans=100*1024/4;
System.out.println(ans);
}
}
C填空题
问题描述
一个包含2020个结点的无向图,如果图中没有自环和重边,最多包含多少条边?
答案提交
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
参考答案
2039190
public class Main {
public static void main(String[] args) {
int ans=2020*(2020-1)/2;
System.out.println(ans);
}
}
D填空题
问题描述
整数1到6连在一起,成为123456,长度为6。
整数1到12连在一起,成为123456789101112,长度为15。
请问整数1到2020连在一起,长度为多少?
答案提交
这是一道结果天空的题,你只需要算出结果后提交即可。本题的结果为个整数,在提交答案时只垍写这个整数,垍写
多余的内容将无法得分。
参考答案
6973
public class Main {
public static void main(String[] args) {
String str="";
for(int i=1;i<=2020;i++) {
str=str+i;
}
System.out.println(str.length());
}
}
E填空题
问题描述
在一个序列a = (a[1], a[2], …, a[n]) 中,如果(i, j)满足 i < j 且 a[i] > a[j],则称为一个逆序对。
例如:(3, 2, 2, 1) 中包含6个逆序对。
请问,(87, 39, 35, 1, 99, 10, 54, 1, 46, 24, 74, 62, 49, 13, 2, 80, 24, 58, 8, 14, 83, 23, 97, 85, 3, 2, 86, 10, 71, 15) 中包含多少个逆序对?
答案提交
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
结果
217
//题目给的例题好像错了,是5对
public class Main {
public static void main(String[] args) {
int ans=0;
int[] a=new int[] {87, 39, 35, 1, 99, 10, 54, 1, 46,
24, 74, 62, 49, 13, 2, 80, 24, 58, 8, 14, 83,
23, 97, 85, 3, 2, 86, 10, 71, 15};
for(int i=0;i<=a.length-1;i++) {
for(int j=0;j<=a.length-1;j++) {
if(i<j&&a[i]>a[j]) {
ans++;
}
}
}
System.out.println(ans);
}
}
F编程题
问题描述
给定一个三角形的底边长度 l 和高度 h,求三角形的面积。
输入格式
输入的第一行包含一个整数 l,表示三角形的底边长度。
第二行包含一个整数 h,表示三角形的高。
输出格式
输出一个数,表示三角形的面积。如果面积为整数,请直接输出这个整数,不带小数点。如果面积不是整数,请四舍五入保留正好一位小数。
样例输入
5
6样例输出
15
样例输入
5
3样例输出
7.5
数据规模和约定
对于所有评测用例,1 <= l, h <= 100。
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
int l=scan.nextInt();
int h=scan.nextInt();
int ans=l*h/2;
if(ans*2==l*h) {
System.out.println((int)ans);
}
else {
double ll=l;
double hh=h;
System.out.printf("%.1f",ll*hh/2);
}
}
}
G编程题
问题描述
小蓝正在上小学,老师要求同学们在暑假每天记日记。可是小蓝整个暑假都在玩,直到最后一天才想起要记日记。于是小蓝赶紧编了一些日记交给老师。
没想到,日记很快就被老师发现了问题,原来小蓝记完8月31日的日记,竟又记了8月32日和8月33日的日记。这显然是有问题的,因为根本没有8月32日和8月33日。
给定一个月份和一个日期,请问2021年有没有这一天。
输入格式
输入的第一行包含一个整数 m,表示月份。
第二行包含一个整数 d,表示日期。
输出格式
如果2021年有 m 月 d 日,输入 yes,否则输出 no。
样例输入
8
32样例输出
no
样例输入
2
28样例输出
yes
数据规模和约定
对于所有评测用例,1 <= m <= 20,1 <= d <= 40。
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
int count=0;
int year=2021;
int[] days=new int[] {0,31,28,31,30,31,30,31,31,30,31,30,31};
int m=scan.nextInt();
int d=scan.nextInt();
if(m<0||m>12) {
count++;
}
if(d>days[m]) {
count++;
}
if(count>0) {
System.out.println("no");
}
else{
System.out.println("yes");
}
}
}
H编程题
问题描述
给定一个单词,请问在单词中删除 t 个字母后,能得到的字典序最小的单词是什么?
输入格式
输入的第一行包含一个单词,由大写英文字母组成。
第二行包含一个正整数 t。
输出格式
输出一个单词,表示答案
样例输入
LANQIAO
3样例输出
AIAO
数据规模和约定
对于所有评测用例,单词长度不超过 100,t 小于单词长度。
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
String str=scan.next();
int t=scan.nextInt();
int[] a=new int[str.length()];
for(int i=0;i<str.length();i++) {
a[i]=str.charAt(i);
System.out.println(a[i]);
}
while(t>0) {
t--;
for(int i=0;i<a.length-1;i++) {
if(a[i]>a[i+1]) {
a[i]=Integer.MIN_VALUE;
break;
}
}
}
for(int i=0;i<a.length;i++) {
if(a[i]>=0) {
System.out.print((char)a[i]);
}
}
}
}
I编程题
问题描述
给定一个序列 a_1, a_2, …, a_n。其中 a_1 < a_2 < … < a_n。
相邻两个数之间的差(后一个数减前一个数)称为它们的间隙。
请问序列中最大的间隙值是多少?
输入格式
输入的第一行包含一个整数 n,表示序列的长度。
第二行包含 n 个正整数,为给定的序列。
输出格式
输出一个整数,表示序列中最大的间隙值。
样例输入
5
1 3 8 9 12样例输出
5
样例说明
a_3 - a_2 = 5。
数据规模和约定
对于所有评测用例,1 <= n <= 1000,1 <= a_i <= 100000。
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
int max=Integer.MIN_VALUE;
int n=scan.nextInt();
int[] a=new int[n];
int[] b=new int[n-1];
for(int i=0;i<n;i++) {
a[i]=scan.nextInt();
}
for(int i=1;i<n-1;i++) {
b[i-1]=a[i]-a[i-1];
max=Math.max(max,b[i-1]);
}
System.out.println(max);
}
}
J编程题
问题描述
小蓝有黄绿蓝三种颜色的小球,分别为 R, G, B 个。同样颜色的小球没有区别。
小蓝将这些小球从左到右排成一排,排完后,将最左边的连续同色小球个数记为 t_1,将接下来的连续小球个数记为 t_2,以此类推直到最右边的小球。
请问,总共有多少总摆放小球的方案,使得 t_1, t_2, … 为严格单调递增序列,即 t_1 < t_2 < t_3 < …
输入格式
输入一行包含三个整数 R, G, B。
输出格式
输出一个整数,表示答案。
样例输入
3 6 0
样例输出
3
样例说明
用 r 表示红球,g 表示绿球,可能的方案包括:
rrrgggggg
grrrggggg
ggrrrgggg
样例输入
2 4 6
样例输出
3
样例说明
用 r 表示红球,g 表示绿球,b 表示蓝球,可能的方案包括:
rrggggbbbbbb
grrgggbbbbbb
brrggggbbbbb
数据规模和约定
对于30%的评测用例,1 <= R, G, B <= 10;
对于60%的评测用例,1 <= R, G, B <= 30;
对于所有评测用例,1 <= R, G, B <= 50。
import java.util.*;
public class Main {
static int ans=0;
static int count=0;
static int[] a=new int[3];
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
for(int i=0;i<3;i++) {
a[i]=scan.nextInt();
count+=a[i];
}
dfs(count,0,-1);
System.out.println(ans);
}
public static void dfs(int count,int sum,int color) {
if(count==0) {
ans++;
return;
}
for(int i=0;i<3;i++) {
if(color==i) {
continue;
}
for(int j=sum+1;j<=a[i];j++) {
a[i]=a[i]-j;
dfs(count-j,j,i);
a[i]+=j;
}
}
}
}
文章详细解释了五个编程题目,涵盖约数计算、文件存储、图论、数组操作、几何问题、日期逻辑、单词排序和序列分析,体现了解决实际问题的编程技巧。
294

被折叠的 条评论
为什么被折叠?



