[藍橋杯][基礎練習VIP]芯片測試

題目描述

有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

#include<iostream> 
using namespace std;
int map[25][25];
int main()
{
	int n;
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++) cin>>map[i][j];
	}
	for(int j=1;j<=n;j++)
	{
		int num=0;
		for(int i=1;i<=n;i++)
		{
			if(map[i][j]==1) num++;
		}
		if(2*num>n) cout<<j<<" "; 
	}
	return 0;
}

思路

第j列是第j個芯片檢測其他芯片的情況,遍歷該列,得好芯片的數目,判斷是否符合要求。

我是程序媛,是用代碼改變世界的工程師。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章