試題 基礎練習 芯片測試(Java)
資源限制
時間限制:1.0s 內存限制:512.0MB
問題描述
有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
代碼
?
1 import java.util.Scanner; 2 import java.util.*; 3 ? 4 ? 5 public class Main { 6 static int n,a[][],count[]; 7 8 public static void main(String[] args) { 9 Scanner sc = new Scanner(System.in); 10 n = sc.nextInt(); 11 a = new int[22][22]; 12 count = new int [25]; 13 for(int i=1;i<=n;i++){ 14 for(int j=1;j<=n;j++){ 15 a[i][j] = sc.nextInt(); 16 } 17 } 18 19 for(int i=1;i<=n;i++){ 20 for(int j=1;j<=n;j++){ 21 if(i!=j&&a[i][j]==1) 22 count[j]++; 23 } 24 } 25 for(int j=1;j<=n;j++) 26 if(count[j]>=n/2) 27 System.out.print(j + " "); 28 } 29 ? 30 }
浙公網安備 33010602011771號