藍橋 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

根據題意,好芯片才能檢測出正確的結果,而壞芯片隨機給出待測芯片的結果,由於好芯片數量總大於壞芯片的數量,所以正確的檢測總大於錯誤的檢測。所以檢測結果的數量較多者爲正確檢測結果。

#include<iostream>
using namespace std;
int main()
{
	int i,j,n;
	int yes=0,no=0;
	cin >> n;
	int a[n+1][n+1];
	for(i=1;i<=n;i++)
		for(j=1;j<=n;j++)
			cin >> a[i][j];
	for(j=1;j<=n;j++)
	{
		yes = no = 0;//初始化
		for(i=1;i<=n;i++)
		{
			if(a[i][j]==1)
				yes++;
			if(a[i][j]==0)
				no++;
		}
		if(yes > no)
			cout << j << " ";
	}
	return 0;
 } 

本題中需注意變量初始化。
觀察檢測結果時,以列爲單位觀察對某一芯片的檢測結果

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