A 小蓝要为一条街的住户制作门牌号。
这条街一共有 20202020 住户,门牌号从 11 到 20202020 编号。
小蓝制作门牌的方法是先制作门牌 00 到 99 这些数字据需要将这些数字字符粘贴在门牌上,如门牌 1017 要依次粘贴字符 1、0、1、71、0、1、7,即需要 11 个字符 00,22 个字符 11,11 个字符 77。
制作一切 11 到 20202020 号门牌需要多少个字符? 22?
import java.util.Scanner; // 1:无需package // 2: 类名必须Main, 不可修改 public class Main {
static int count; public static void main(String[] args) {
for (int j = 1; j <= 2020; j ) {
if (j / 1000 == 2) {
count ; } if ((j / 100) % 10 == 2) {
count ; } if ((j / 10) % 10 == 2) {
count ; } if (j % 10 == 2) {
count ; } } System.out.println(count); } }
B矩阵,里面只包含数字 00 和 22。小蓝很喜欢 20202020,他想找 到这个数字矩阵中有多少个 20202020 。 小蓝只关注三种构成 的方式:< p>
同一行里面连续四个字符从左到右构成 20202020。
同一列里面连续四个字符从上到下构成 20202020。
在一条从左上到右下的斜线上连续四个字符,从左上到右下构成 20202020。
例如,对于下面的矩阵: 220000 000000 002202 000000 000022 002020 一共有 55 个 20202020。其中 11 个是在同一行里的,11 个是在同一列里的,33 个 是斜线上的。
小蓝的矩阵比上面的矩阵要大,如下给出了小蓝的矩阵。
请帮助小蓝确定在他的矩阵中有多少个 2020。
import java.util.*;
// 1:无需package
// 2: 类名必须Main, 不可修改
public class Main {
static int count;
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
char[][] as = new char[300][300];
for (int i = 0; i < 300; i++) {
as[i] = scanner.nextLine().toCharArray();
}
for (int i = 0; i < 300; i++) {
for (int j = 0; j + 3 < 300; j++) {
if (as[i][j] == '2' && as[i][j + 1] == '0' && as[i][j + 2] == '2' && as[i][j + 3] == '0') {
count++;
}
}
}
for (int i = 0; i + 3 < 300; i++) {
for (int j = 0; j < 300; j++) {
if (as[i][j] == '2' && as[i + 1][j] == '0' && as[i + 2][j] == '2' && as[i + 3][j] == '0') {
count++;
}
}
}
for (int i = 0; i + 3 < 300; i++) {
for (int j = 0; j + 3 < 300; j++) {
if (as[i][j] == '2' && as[i + 1][j + 1] == '0' && as[i + 2][j + 2] == '2' && as[i + 3][j + 3] == '0') {
count++;
}
}
}
System.out.println(count);
scanner.close();
}
}
C 题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
如下图所示,小明用从 11 开始的正整数“蛇形”填充无限大的矩阵。
1 2 6 7 15 … 3 5 8 14 … 4 9 13 … 10 12 … 11 … … 容易看出矩阵第二行第二列中的数是 55。请你计算矩阵中第 2020 行第 2020 列的数是多少?
public class Main {
static int[][] ints = new int[41][41];
static int[][] temp = new int[41][41];
public static void main(String[] args) {
int a = 2;
ints[0][0] = 1;
int i = 1;
int j = 0;
while (i < 40 && j < 40) {
if (temp[i][j] == 0) {
ints[i][j] = a;
a++;
temp[i][j] = 1;
}
if (i == 0) {
if (temp[i + 1][j - 1] == 0) {
i = i + 1;
j = j - 1;
ints[i][j] = a;
a++;
temp[i][j] = 1;
} else {
j = j + 1;
ints[i][j] = a;
a++;
temp[i][j] = 1;
}
}
if (j == 0) {
if (temp[i - 1][j + 1] == 0) {
i = i - 1;
j = j + 1;
ints[i][j] = a;
a++;
temp[i][j] = 1;
} else {
i = i + 1;
ints[i][j] = a;
a++;
temp[i][j] = 1;
}
} else if (i != 0 && j != 0) {
if (temp[i - 1][j + 1] == 0) {
i = i - 1;
j = j + 1;
ints[i][j] = a;
a++;
temp[i][j] = 1;
} else {
i = i + 1;
j = j - 1;
ints[i][j] = a;
a++;
temp[i][j] = 1;
}
}
}
System.out.println(ints[19][19]);
}
}
D
图片描述 上图给出了七段码数码管的一个图示,数码管中一共有 77 段可以发光的二 极管,分别标记为 a, b, c, d, e, f, ga,b,c,d,e,f,g。
小蓝要选择一部分二极管(至少要有一个)发光来表达字符。在设计字符 的表达时,要求所有发光的二极管是连成一片的。
例如:bb 发光,其他二极管不发光可以用来表达一种字符。
例如 cc 发光,其他二极管不发光可以用来表达一种字符。这种方案与上 一行的方案可以用来表示不同的字符,尽管看上去比较相似。
例如:a, b, c, d, ea,b,c,d,e 发光,f, gf,g 不发光可以用来表达一种字符。
例如:b, fb,f 发光,其他二极管不发光则不能用来表达一种字符,因为发光 的二极管没有连成一片。
请问,小蓝可以用七段码数码管表达多少种不同的字符?
System.out.println(80);
E 小蓝给学生们组织了一场考试,卷面总分为 100 分,每个学生的得分都是一个 0 到 100 的整数。
请计算这次考试的最高分、最低分和平均分。
输入描述 输入的第一行包含一个整数 n\ (1 ≤ n ≤ 10^4)n (1≤n≤10 4),表示考试人数。 接下来 nn 行,每行包含一个 0 至 100 的整数,表示一个学生的得分。 输出描述 输出三行。 第一行包含一个整数,表示最高分。
第二行包含一个整数,表示最低分。
第三行包含一个实数,四舍五入保留正好两位小数,表示平均分。
import java.awt.List;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] ints = new int[n];
for (int i = 0; i < n; i++) {
ints[i] = sc.nextInt();
}
ArrayList<Integer> list = new ArrayList<>();
for (int i = 0; i < n; i++) {
list.add(ints[i]);
}
Float sum = 0f;
for (int i = 0; i < n; i++) {
sum += ints[i];
}
Arrays.sort(ints);
System.out.println(ints[n-1]);
System.out.println(ints[0]);
System.out.printf("%.2f",sum/n);
sc.close();
}
}
G 小蓝正在学习一门神奇的语言,这门语言中的单词都是由小写英文字母组 成,有些单词很长,远远超过正常英文单词的长度。小蓝学了很长时间也记不住一些单词,他准备不再完全记忆这些单词,而是根据单词中哪个字母出现得最多来分辨单词。
现在,请你帮助小蓝,给了一个单词后,帮助他找到出现最多的字母和这 个字母出现的次数。
import java.awt.List;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
public class Demo01 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
// String s = "babcabaa";
char[] array = s.toCharArray();
int[] temp = new int[26];
int max = 0;
int z = 0;
for (int i = 0; i < array.length; i++) {
int a = array[i] - 'a';
temp[a]++;
}
for (int i = 0; i < array.length; i++) {
if(temp[i]>max) {
max = temp[i];
z = i;
}
}
char c = (char) ((char) 'a' + z);
System.out.println(c);
System.out.println(max);
sc.close();
}
}