網易2019校招程式設計筆試題,給定一個N*M矩陣,放了牌,朝上
尚有不足,請高手勿噴,有高見者請不吝賜教
import java.util.Scanner;
public class T2 {
/*
* 給定一個N*M矩陣,放了牌,朝上
* 對於每個牌進行以下操作
* 翻轉一張牌,與之相鄰的八張牌也翻轉
* 請輸出牌面向下的個數
*
* 輸入測試用例數t
* 輸出牌面朝下的個數
*
* 示例
* 輸入
* 5
* 1 1
* 1 2
* 3 1
* 4 1
* 2 2
*
* 輸出
* 1
* 0
* 1
* 2
* 0
* */
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int t=0;
t=sc.nextInt();
int[] re=new int[t];
for (int i = 0; i < t; i++) {
int n=0,m=0;
n=sc.nextInt();
m=sc.nextInt();
boolean[][] a=new boolean[n][m];
for (int j = 0; j < n; j++) {
for (int j2 = 0; j2 < m; j2++) {
a[j][j2]=!a[j][j2];
if(j-1>-1&&j-1<n&&j2-1>-1&&j2-1<m){a[j-1][j2-1]=!a[j-1][j2-1];}
if(j>-1&&j<n&&j2-1>-1&&j2-1<m){a[j][j2-1]=!a[j][j2-1];}
if(j-1>-1&&j-1<n&&j2>-1&&j2<m){a[j-1][j2]=!a[j-1][j2];}
if(j+1>-1&&j+1<n&&j2>-1&&j2<m){a[j+1][j2]=!a[j+1][j2];}
if(j>-1&&j<n&&j2+1>-1&&j2+1<m){a[j][j2+1]=!a[j][j2+1];}
if(j+1>-1&&j+1<n&&j2+1>-1&&j2+1<m){a[j+1][j2+1]=!a[j+1][j2+1];}
if(j+1>-1&&j+1<n&&j2-1>-1&&j2-1<m){a[j+1][j2-1]=!a[j+1][j2-1];}
if(j-1>-1&&j-1<n&&j2+1>-1&&j2+1<m){a[j-1][j2+1]=!a[j-1][j2+1];}
}
}
int r=0;
for (int j = 0; j < n; j++) {
for (int j2 = 0; j2 < m; j2++) {
if(a[j][j2]==true) {
r++;
}
}
}
re[i]=r;
}
for (int i = 0; i < re.length; i++) {
System.out.println(re[i]);
}
}
}