题目描述

给你 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;
}