出现次数超过一半的数(信息学奥赛一本通-T1186)
生活随笔
收集整理的这篇文章主要介绍了
出现次数超过一半的数(信息学奥赛一本通-T1186)
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
【题目描述】
给出一个含有n(0 < n ≤ 1000)个整数的数组,请找出其中出现次数超过一半的数。数组中的数大于-50且小于50。
【输入】
第一行包含一个整数n,表示数组大小;
第二行包含n个整数,分别是数组中的每个元素,相邻两个元素之间用单个空格隔开。
【输出】
如果存在这样的数,输出这个数;否则输出no。
【输入样例】
3
1 2 2
【输出样例】
2
【源程序】
#include<iostream> #include<cstdio> #include<cstring> using namespace std; int main() {int a[101]={0};int n,b;int i;bool flag=false;cin>>n;for(i=0;i<n;i++){cin>>b;a[b+50]++;}for(i=0;i<100;i++){if(a[i]>=n/2){flag=true;cout<<i-50<<endl;}}if(flag==0)cout<<"no";cout<<endl;return 0; }
总结
以上是生活随笔为你收集整理的出现次数超过一半的数(信息学奥赛一本通-T1186)的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 训练日志 2018.12.9
- 下一篇: Fence Repair(POJ-325