蓝桥杯2020年第十一届javaB组省赛
A:门牌制作
思路:判断1-2020每个数有多少个2即可,代码很容易实现
答案:624
public class A门牌制作 {
public static void main(String[] args) {
int res = 0;
for (int i = 1; i <= 2020; i++) {
int j = i;
while (j > 0) {
if ((j % 10) == 2) {
//判断个位是否为2
res++;
}
j /= 10;//将个位去掉继续判断
}
}
System.out.println(res);
}
}
B:寻找2020
思路:遍历每个位置,然后分三个方向去走
答案:16520
public class B寻找2020 {
public static void main(String[] args) throws FileNotFoundException {
int[][] arr = input();//读取文件操作
int res = 0;
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
//1.先拿到每一个元素
if (arr[i][j] == 0) continue;//如果是0就跳过
//2.如果是2就分三路去搜索
if (j + 3 < arr[i].length && arr[i][j+1] == 0 &&
arr[i][j+2] == 2 && arr[i][j+3] == 0) {
res++;
}//向右
if (i + 3 < arr.length && arr[i+1][j] == 0 &&
arr[i+2][j] == 2 && arr[i+3][j] == 0) {
res++;
}//向下
if (i + 3 < arr.length && j + 3 < arr[i].length &&
arr[i+1][j+1] == 0 && arr[i+2][j+2] == 2 && arr[i+3][j+3] == 0) {
res++;
}//向右下侧
}
}
System.out.println(res);
}
private static int[][] input() throws FileNotFoundException {
FileInputStream fis = new FileInputStream(new File("D:\\workspace_idea\\javaSenior\\leetcode\\2020.txt"));
Scanner sc = new Scanner(fis);
List<String> list = new ArrayList&l