- 填空题问题描述
请问2019的二进制表示是多少?注意在提交的时候不要提交前导0。
答案提交
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个二进制数,在提交答案时只填写这个二进制数,填写多余的内容将无法得分。
解题思路
送分题 打开 计算器 切换到 程序员 输入2019 Ctrl + C Ctrl + V 删除前导向0 o了代码实现// Integer.toBinaryString(2019):返回int变量的二进制表示的字符串 System.out.println(Integer.toBinaryString(2019));
答案 11111100011
- 填空题 :不知对错!!
问题描述
不超过19000的正整数中,与19000互质的数的个数是多少?
答案提交
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
解题思路
互质数:公因数只有1的两个非零自然数,叫做互质数。
19000包含有19,2和5这三个因数,从1开始对 2、5、19取余数,如果均不为0,则与19000互质!
代码实现
public class Main {
public static void main(String[] args) {
int count=0;
for(int i = 1; i < 19000; i++)
if(i % 2 != 0 && i % 5 != 0 && i % 19 != 0)
count++;
System.out.println(count);
}
}
答案 7200
- .填空题 :不知对错!!
问题描述
一个包含有2019个结点的有向图,最多包含多少条边?(不允许有重边)
答案提交
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
解题思路:(结点数x(结点数-1))/2 (2019 * (2019 - 1)) / 2 = 2037171
答案 2037171
- 填空题 :不知对错!!
问题描述
一棵包含有2019个结点的树,最多包含多少个叶结点?
答案提交
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
解题思路:结点数/2+1 2019/2+1=1010
答案 1010
- 编程题
问题描述
给定一个单词,请使用凯撒密码将这个单词加密。
凯撒密码是一种替换加密的技术,单词中的所有字母都在字母表上向后偏移3位后被替换成密文。即a变为d,b变为e,…,w变为z,x变为a,y变为b,z变为c。
例如,lanqiao会变成odqtldr。
输入格式
输入一行,包含一个单词,单词中只包含小写英文字母。
输出格式
输出一行,表示加密后的密文。
样例输入
lanqiao
样例输出
odqtldr
评测用例规模与约定
对于所有评测用例,单词中的字母个数不超过100。
解题思路
Sorry,我做的麻烦了,都转成char类型了,直接+3后转回字母就可以了!
当时思路
接收的字符串转换char类型数组n,声明char类型的数组c保存26个字母,
循环判断数组n的中字母与数组c中的字母是否想匹配,如果匹配则取出其在26个字母中的位置-1即该字母下标(因Java数组从0开始 所以需要-1),然后判断 该字母下标 +3 是否大于26 否输出 是则-26后输出
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
char[] n = sc.next().toCharArray();
char[] c = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
for(int i = 0;i < n.length; i++) {
int j = 0;
while(true) {
if(n[i] == c[j]) {
if(j + 3 < c.length) {
System.out.print(c[j+3]);
}else{
System.out.print(c[j+3-26]);
}
break;
}
j++;
}
}
}
}
- 编程题
问题描述
给定一个单词,请计算这个单词中有多少个元音字母,多少个辅音字母。
元音字母包括 a, e, i, o, u,共五个,其他均为辅音字母。
输入格式
输入一行,包含一个单词,单词中只包含小写英文字母。
输出格式
输出两行,第一行包含一个整数,表示元音字母的数量。
第二行包含一个整数,表示辅音字母的数量。
样例输入
lanqiao
样例输出
4
3
评测用例规模与约定
对于所有评测用例,单词中的字母个数不超过100。
解题思路
接收的字符串转换char类型数组n,声明int类型变量a、b分别用于存放元音字母、辅音字母的数量。
遍历数组n,使用switch 匹配至元音字母 a、e、i、o、u时a++否则b++;最后a、b输出!
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
char[] c = sc.next().toCharArray();
int a = 0,b = 0;
for(int i = 0; i < c.length;i++) {
switch(c[i]) {
case 'a':a++;break;
case 'e':a++;break;
case 'i':a++;break;
case 'o':a++;break;
case 'u':a++;break;
default: b++;
}
}
System.out.println(a+"\n"+b);
}
}
- 问题描述
输入一个单词,请输出这个单词中第一个出现的元音字母。
元音字母包括 a, e, i, o, u,共五个。
输入格式
输入一行,包含一个单词,单词中只包含小写英文字母。
输出格式
输出一行包含一个字母,为单词中第一个出现的元素字母。若单词中不存在元音字母,输出字母n。
样例输入
hello
样例输出
e
样例输入
fly
样例输出
n
评测用例规模与约定
对于所有评测用例,单词中的字母个数不超过100。
解题思路
接收的字符串转换char类型数组c,声明String类型变量s为"n"(单词中不存在元音字母时输出字母n);遍历数组c,使用switch语句匹配到元音a、e、i、o、u中任意一位时当字母赋值给s,跳出循环,输出变量s;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
char[] c = sc.next().toCharArray();
String s = "n";
for(int i = 0; i < c.length; i++) {
switch (c[i]) {
case 'a':s = "a";break;
case 'e':s = "e";break;
case 'i':s = "i";break;
case 'o':s = "o";break;
case 'u':s = "u";break;
}
if(s != "n")break;
}
System.out.println(s);
}
}
- 编程题:此题不会 没有思路 请路过的大神支招!!
题目描述
问题描述
如果一个序列的奇数项都比前一项大,偶数项都比前一项小,则称为一个摆动序列。即 a[2i]<a[2i-1], a[2i+1]>a[2i]。
小明想知道,长度为 m,每个数都是 1 到 n 之间的正整数的摆动序列一共有多少个。
输入格式
输入一行包含两个整数 m,n。
输出格式
输出一个整数,表示答案。答案可能很大,请输出答案除以10000的余数。
样例输入
3 4
样例输出
14
样例说明
以下是符合要求的摆动序列:
2 1 2
2 1 3
2 1 4
3 1 2
3 1 3
3 1 4
3 2 3
3 2 4
4 1 2
4 1 3
4 1 4
4 2 3
4 2 4
4 3 4
评测用例规模与约定
对于 20% 的评测用例,1 <= n, m <= 5;
对于 50% 的评测用例,1 <= n, m <= 10;
对于 80% 的评测用例,1 <= n, m <= 100;
对于所有评测用例,1 <= n, m <= 1000。 - 编程题
题目描述
问题描述
一个平面向量表示从一个坐标点到另一个坐标点的变化量,一般用两个数 (x, y) 来表示。
两个向量相加是指分别将对应的两个数相加,例如 (x_1, y_1) 与 (x_2, y_2) 相加后得 (x_1+x_2, y_1+y_2)。
如果两个向量相加后,得到的向量两个值相等,我们称这两个向量为和谐向量对。例如 (3, 5) 和 (4, 2) 是和谐向量对。
给定 n 个向量,问能找到多少个和谐向量对?
输入格式
输入的第一行包含一个整数 n,表示向量的个数。
接下来 n 行,每行两个整数 x_i, y_i,表示一个向量。
输出格式
输出一行,包含一个整数,表示有多少个和谐向量对。
请注意,自己和自己不能成为一个和谐向量对。
样例输入
5
9 10
1 3
5 5
5 4
8 6
样例输出
2
样例输入
4
1 1
2 2
1 1
2 2
样例输出
6
样例说明
每两个向量组成一个和谐向量对。
评测用例规模与约定
对于 70% 的评测用例,1 <= n <= 1000;
对于所有评测用例,1 <= n <= 100000,-1000000 <= x_i, y_i <= 1000000。
请注意答案可能很大,可能需要使用 long long 来保存。
解题思路
接收int类型n;声明long类型的二维数组l(第一维下标n,第二维下标2(0存x,1存y));
遍历数组l为每个元素赋值,声明long类型count用于存储 和谐向量对 的数量;
双层遍历数组,取l数组元素 内层为外层+1; 即外层X为 l[0][0] 时 内层x为 l[1][0],
外层y为 l[0][1] 时 内层y为 l[1][1]; 声明 long 类型变量x(外层x + 内层x)与 y(外层y + 内层y);
判断 x 是否等于 y,相等则是和谐向量对,变量count+1;循环结束后输出 count
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
long[][] l = new long[n][2];
for(int i = 0; i < n; i++) {
l[i][0]=sc.nextLong();
l[i][1]=sc.nextLong();
}
long count = 0;
for(int i = 0; i < n; i++) {
for(int j = i + 1; j < n;j++) {
long x = l[i][0] + l[j][0];
long y = l[i][1] + l[j][1];
if(x == y)
count++;
}
}
System.out.println(count);
}
}
- 编程题:此题不会 没有思路 请路过的大神支招!!
题目描述
问题描述
小明和朋友们一起去郊外植树,他们带了一些在自己实验室精心研究出的小树苗。
小明和朋友们一共有 n 个人,他们经过精心挑选,在一块空地上每个人挑选了一个适合植树的位置,总共 n 个。他们准备把自己带的树苗都植下去。
然而,他们遇到了一个困难:有的树苗比较大,而有的位置挨太近,导致两棵树植下去后会撞在一起。
他们将树看成一个圆,圆心在他们找的位置上。如果两棵树对应的圆相交,这两棵树就不适合同时植下(相切不受影响),称为两棵树冲突。
小明和朋友们决定先合计合计,只将其中的一部分树植下去,保证没有互相冲突的树。他们同时希望这些树所能覆盖的面积和(圆面积和)最大。
输入格式
输入的第一行包含一个整数 n ,表示人数,即准备植树的位置数。
接下来 n 行,每行三个整数 x, y, r,表示一棵树在空地上的横、纵坐标和半径。
输出格式
输出一行包含一个整数,表示在不冲突下可以植树的面积和。由于每棵树的面积都是圆周率的整数倍,请输出答案除以圆周率后的值(应当是一个整数)。
样例输入
6
1 1 2
1 4 2
1 7 2
4 1 2
4 4 2
4 7 2
样例输出
12
评测用例规模与约定
对于 30% 的评测用例,1 <= n <= 10;
对于 60% 的评测用例,1 <= n <= 20;
对于所有评测用例,1 <= n <= 30,0 <= x, y <= 1000,1 <= r <= 1000。