题目描述

给你 10 分钟时间,根据上排给出的十个数,在其下排填出对应的十个数。要求下排每个数都是先前上排那十个数在下排出现的次数。

上排的十个数如下:

【0,1,2,3,4,5,6,7,8,9】

示例

举一个例子:

  • 数值:0, 1, 2, 3, 4, 5, 6, 7, 8, 9
  • 分配:6, 2, 1, 0, 0, 0, 1, 0, 0, 0

0 在下排出现了 6 次,1 在下排出现了 2 次,2 在下排出现了 1 次,3 在下排出现了 0 次……以此类推。

参考实现

#include <iostream>
                #include <vector>
                
                using namespace std;
                
                
                /*by hk 15-7-1*/
                int main(int argc, char *argv[])
                {
                
                	vector<int> data;
                	int Num[9999];
                	memset(Num,0,9999*4);
                	int n;
                	while(cin>>n)/*for 数据安全*/
                	{
                		data.push_back(n);
                	}
                
                	for(vector<int >::iterator it=data.begin();it!=data.end();it++)
                	{
                		++Num[*it];
                
                	}
                
                	for(int i=0;i<9999;i++)
                	{
                		if(Num[i]!=0)cout<<Num[i]<<" ";
                
                	}
                	return 0;
                }