十一届蓝桥杯省赛真题B题—寻找2020
这一题,依旧暴力循环解决问题,需要注意的是i,j变量,不要把位置搞错了,这点容易出错
依旧是野路子出生,干题
import java.util.Scanner;
public class B_寻找2020 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int h = sc.nextInt();//需要数出来多少行
int l = sc.nextInt();//多少列
int ans = 0;//记录2020出现的次数
int[][] ar = new int[h][l];//把每一个都存进数组里边
for(int i = 0;i<h;i++) {
for(int j = 0;j<l;j++) {
ar[i][j] = sc.nextInt();
}
}
//对行搜索
for(int i = 0;i<h;i++) {
for(int j = 0;j<=l-4;j++) {
if(ar[i][j] == 2) {
if(ar[i][j+1] == 0&&ar[i][j+2] == 2&&ar[i][j+3] == 0) {
ans++;
}
}
}
}
//对每一列搜索
for(int i = 0;i<l;i++) {//i作为列
for(int j = 0;j<=h-4;j++) {//j作为行
if(ar[i][j] == 2) {
if(ar[j+1][i] == 0&&ar[j+2][i] == 2&&ar[j+3][i] == 0) {
ans++;
}
}
}
}
//从左上到右下搜索
for(int i = 0;i<h;i++) {
for(int j = 0;j<l;j++) {
if(ar[i][j] == 2&&i<=h-4&&j<=l-4) {
if(ar[i+1][j+1] == 0&&ar[i+2][j+2] == 2&&ar[i+3][j+3] == 0) {
ans++;
}
}
}
}
System.out.println(ans);
}
}
答案:因为我没有这个2020.text,所以…