題目連結:http://www.dotcpp.com/oj/problem1473.html 這題還是很有意思的,題目最重要的一句話就是
有n(2≤n≤20)塊晶片,有好有壞,已知好晶片比壞晶片多。
是以無論怎麼樣,每一個晶片都能被正确地判斷是好晶片還是壞晶片。整道題就是算有多少個1。
之前做了一遍沒做出來,還有一個原因就是看錯了題目
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
int a[25][25];
int num[25];
while(cin>>n)
{
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
cin>>a[i][j];
for(int j=0;j<n;j++) //清單示晶片的編号
{
int ans=0;
for(int i=0;i<n;i++) //每一行表示的是晶片的測試結果
ans+=a[i][j];
num[j]=ans;
}
bool flag=true;
for(int i=0;i<n;i++)
{
if(num[i]>n/2) //如果有超過一半的晶片認為這是好晶片,那這就是好晶片
{ //因為好晶片的數量是大于壞晶片的
if(flag)
{
flag=false; cout<<i+1;
}
else cout<<" "<<i+1;
}
}
cout<<endl;
}
return 0;
}