1. 程式人生 > >網易2019校招程式設計筆試題,給定一個N*M矩陣,放了牌,朝上

網易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]);
        }
    }
    
}