1. 程式人生 > >[Java] 藍橋杯BASIC-23 基礎練習 晶片測試

[Java] 藍橋杯BASIC-23 基礎練習 晶片測試

問題描述
有n(2≤n≤20)塊晶片,有好有壞,已知好晶片比壞晶片多。
每個晶片都能用來測試其他晶片。用好晶片測試其他晶片時,能正確給出被測試晶片是好還是壞。而用壞晶片測試其他晶片時,會隨機給出好或是壞的測試結果(即此結果與被測試晶片實際的好壞無關)。

給出所有晶片的測試結果,問哪些晶片是好晶片。
輸入格式
輸入資料第一行為一個整數n,表示晶片個數。
第二行到第n+1行為n*n的一張表,每行n個數據。表中的每個資料為0或1,在這n行中的第i行第j列(1≤i, j≤n)的資料表示用第i塊晶片測試第j塊晶片時得到的測試結果,1表示好,0表示壞,i=j時一律為1(並不表示該晶片對本身的測試結果。晶片不能對本身進行測試)。


輸出格式
按從小到大的順序輸出所有好晶片的編號
樣例輸入
3
1 0 1
0 1 0
1 0 1
樣例輸出
1 3

package base23;

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int[][] test = new int[n][n];
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < n; j++) {
                test[i][j] = in.nextInt();
            }
        }
        for (int i = 0; i < n; i++) {
            int count = 0;
            for (int j = 0; j < n; j++) {
                if (i != j)
                    count += test[j][i];
            }
            if (count >= n / 2)
                System.out.print(i + 1 + " ");
        }

    }
}