[ACM_ZJUT_1060]个数最多的余数

蓝飞 蓝飞 | 时间:2012-04-05, Thu | 10,153 views
编程算法 

个数最多的余数

Time Limit:1000MS Memory Limit:32768K

Description

输入一些正整数(个数≤10000),计算其模100的余数,输出个数最多的余数。

Sample Input

101 105 1 305 9 901

Sample Output

1

这道题,呃,挺简单,真的挺简单。

那为什么我把它发出来呢= =||

因为这道题让做惯了比较难的题的我想复杂了。。 [糗大了]

下午,同学问了我这道题,嗯,输出个数“最多”的余数。唔,最多,那就是排序咯?“个数”最多的“余数”,输出的数据跟排序的数据不是同一个,那要储存两个数据咯,那使用什么呢?结构体?map容器?那要自定义比较函数?

代码如下:

#include <iostream>
#include <map>
#include <iterator>
using namespace std;
int main()
{
	int n, max = 0, maxnum = 0;
	map<int, int> m;
	while(cin>>n)
	{
		++m[n%100];
	}
	for(map<int, int>::iterator it = m.begin(); it != m.end(); ++it){
		if((*it).second > max){
			maxnum = (*it).first;
			max = (*it).second;
		}
	}
	cout << maxnum << endl;
	return 0;
}
结果是Accepted了,但越想越不对= =。。直接找下标不就行了 [流汗] ?
代码如下:
#include <iostream>
using namespace std;
int main()
{
	int n, max = 0, maxnum = 0;
	int r[100] = {0};
	while(cin>>n)
	{
		++r[n % 100];
	}
	for(int i = 0; i < 100; ++i){
		if(max < r[i]){
			maxnum = i;
			max = r[i];
		}
	}
	cout << maxnum << endl;
	return 0;
}
如需转载请注明出处:蓝飞技术部落格

当前暂无评论 »