象帝之先


私信TA

用户名:scorpiowolf

访问量:78767

签 名:

科技改变世界,万物皆可编程。

等  级
排  名 43
经  验 12458
参赛次数 3
文章发表 53
年  龄 20
在职情况 学生
学  校 青岛理工大学琴岛学院
专  业 计算机科学与技术

  自我简介:

一个合格程序员的标准: 兴趣否? 持之以恒否? 耐寂寞钻研否? 挖掘机技术哪家强?

解题思路:
将每个芯片看成一份,一共n份,以列为单位,按行检索,将所有显示好芯片的份数保存下来,因为题目中说了

好芯片一定比坏芯片多,我们假设一个极端情况:好芯片的判断结果都是对的,坏芯片的判断结果都是错的。即
判断出来好芯片的份数一定占所有判断结果的多数,结果才可信。


注意事项:
不要忘记回溯:每次循环结束后,令x=0
注意比较浮点数的大小时,有可能会出现是失精度的情况,导致判断错误,故最好乘以最小公倍数,将浮点数的比较全部化为整数的比较,养成好习惯。



参考代码:

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


 

0.0分

4 人评分

  评论区

这算骗分么。。。讲得没有逻辑成分
2020-03-20 20:49:30
good
2020-02-14 16:07:24
为什么是a[j][i]==1去判断而不是a[i][j]呀
2020-02-09 11:44:58
  • «
  • 1
  • »