1 3
说明:这个題其实关键的解题就一个,只要其他的芯片对一个芯片的判断结果是1的个数大于0的个数,就可以判断这个是一个好芯片。为什么呢?因为题目中说了,其中坏的芯片的判断是随即的要不是1要不是0,所以对一个好的芯片(被检测)的判断而言,用坏的去判断(检测方)这个好的,显示1和显示0的概率都是50%,而如果还有一个好的芯片(检测方)也去判断这个好的芯片(被检测),这个结果一定是1,所以这个显示1的总数一定会大于显示0的个数。
import java.util.*;public class Main { public static void main(String[] args) { Scanner cn=new Scanner(System.in); int count=cn.nextInt(); cn.nextLine(); int [][]kk=new int[count][count]; for(int i=0;i<count;i++) { String str=cn.nextLine(); String []ss=str.split("//s+"); //分割空格 for(int j=0;j<count;j++) { kk[i][j]=Integer.valueOf(ss[j]); } } /*或者这样简单的输入 * for(int i=0;i<count;i++) for(int j=0;j<count;j++) kk[i][j]=cn.nextInt();*/ String str2=""; for(int i=0;i<count;i++)// 通过列去遍历 这样就是其他的芯片对一个芯片的判断 { int sum=0; for(int j=0;j<count;j++) { if(kk[j][i]==1)sum++; } if(sum>count/2)str2=str2+String.valueOf(i+1)+" "; } System.out.PRintln(str2); /*或者这样简单的输出 * System.out.println(i+1+" ");*/ }}
新闻热点
疑难解答