总时间限制: 1000ms 内存限制: 1000kB 描述 给定含有n个元素的多重集合S,每一个元素在S中出现的次数称为该元素的重数。多重集S中重数最大的元素称为众数。例如,S={1,2,2,2,3,5}。多重集S的众数是2,其重数为3。对于给定的n个天然数组成的多重集S,计算S的众数及其重数 。ios
输入 输入集合大小n及n个数 输出 输出两行 第一行为众数 第二行为重数 样例输入 6 1 2 2 2 3 5 样例输出 2 3数组
#include<iostream> using namespace std; int main() { int i,j,n,same,max=-1; //输入 int a[5000],b[5000]; cin>>n; for(i=0;i<n;i++){ cin>>a[i]; } for(i=0;i<n;i++){ b[i]=0; } //记录个数 for(i=0;i<n;i++){ for(j=0;j<n;j++){ if(a[i]==a[j]) b[i]++; } } for(i=0;i<n;i++) { if(b[i]>max){ max=b[i]; same=a[i]; } if(b[i]==max) { if(a[i]<a[max]){ max=b[i]; same=a[i]; } } } cout<<same<<" "<<max; return 0; }