2020年第十一届蓝桥杯Java B组省赛第二场题解
1.门牌制作——答案:624
思路: 暴力,遍历1-2020,先把每个数字转成字符数组,再统计数组中的字符,累加
代码:
public class A门牌制作 {
/**
* @param args
* 暴力,从1-2020,先把每个数字转成字符数组,再统计数组中的字符,累加
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum = 0 ;
char [] ch;
for (int i = 1; i <=2020; i++) {
ch = Integer.toString(i).toCharArray();
for (int j = 0; j < ch.length; j++) {
if (ch[j] =='2') {
sum++;
}
}
}
System.out.println(sum);//624
}
}
2.寻找2020——答案:16520
代码:
import java.util.Scanner;
public class B寻找2020 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner = new Scanner(System.in);
char[][] ch = new char[300][300];
long sum = 0 ;
for (int i = 0; i < ch.length; i++) {
ch[i] = scanner.nextLine().toCharArray();
}
for (int i = 0; i < ch.length; i++) {
for (int j = 0; j < ch[0].length; j++) {
if (j+3<ch[0].length) {
if (ch[i][j]=='2' && ch[i][j+1]=='0' &&ch[i][j+2]=='2' &&ch[i][j+3]=='0' ) {
sum++;
}
}
if (i+3<ch.length) {
if (ch[i][j]=='2' && ch[i+1][j]=='0' &&ch[i+2][j]=='2' &&ch[i+3][j]=='0') {
sum++;
}
}
if (i+3<ch.length && j+3<ch[0].length)