[2007年NOIP提高组] 统计数字

[2007年NOIP提高组] 统计数字

思路:将输入的数字将输入的统计数字存入数组,根据题意由小到大排序(我用的sort()函数),这样重复的数就挨在一起。排序后开一个计数器,记录重复数的个数,输出。

代码如下:

#include<algorithm>

#include<iostream>

#include<cstring>

using namespace std; 

int num,a[200005];

int main()

{

  cin>>num;//要输入的数字个数

  for(int i=1;i<=num;i++)

   cin>>a[i];//输入数字

sort(a+1,a+1+num);//从小到大排序

int n=1;//计数

for(int i=1;i<num;i++)

{

      if(a[i+1]!=a[i])

      {

           cout<<a[i]<<" "<<n<<endl;;

           n=0;

      }

      n++;

}

if(a[num]!=a[num-1])//单独处理最后一个

 cout<<a[num]<<" 1"<<endl;

else

 cout<<a[num]<<" "<<n<<endl;

return 0;

}

posted @ 2022-08-13 17:05  shanyingrui  阅读(160)  评论(0编辑  收藏  举报