数字统计

Problem2:

题目描述:

输入一组数据,统计每个数出现的次数,并按照数字的大小进行排序输出。

输入:

输入20个数字,数字之间用空格隔开。

输出:

统计每个数字出现的次数,并按数字的大小输出数字及其出现的次数.

样例输入:

20

9 8 5 1 7 2 8 2 9 10 1 7 8 9 5 6 9 0 1 9

样例输出:

0:1

1:3

2:2

5:2

6:1

7:2

8:3

9:5

10:1

提示:类似于词频分析,简化了而已!

/*
 * 描述: 机试题A解答
 * 作者: 张亚超
 * 博客: 牟尼的专栏 http://blog.csdn.net/u012027907
 * 日期: 2014/8/24
 */
#include <stdio.h>
#include <algorithm>
using namespace std;

#define N 100000

struct Nm{
	int num;   //数字
	int count; //个数

	bool operator < (const Nm &A)const{  //重载小于
		return num < A.num;
	}
}Num[N];

int main(){

	int n;
	int count = 0;

	while(scanf("%d",&n) != EOF){
		if(n == 0)
			break;
		int tmp;
		for(int i = 0; i < n; i++){
			scanf("%d",&tmp);
			for(int j = 0; j < count; j++){
				if(tmp == Num[j].num){   //若等于前面的某个数,则个数加一
					Num[j].count++;
					break;
				}
			}
			if( j >= count){            //若为新的数,则插入新节点
				Num[j].num = tmp;
				Num[j].count = 1;
				count++;
			}
		}

		sort(Num,Num+count);  //按数字排序

		for( i = 0; i < count; i ++)  //输出
			printf("%d:%d\n",Num[i].num,Num[i].count);
		printf("\n");
	}
	return 0;
}
时间: 2024-07-29 12:20:44

数字统计的相关文章

SDUT OJ 1704 数字统计问题

SDUT OJ 1704 数字统计问题 博客原文地址:http://blog.csdn.net/xuechelingxiao/article/details/40930259 昨天晚上学弟问了OJ上这个题,群里说不清楚,就写个解题报告吧. 题目大意: 中文题目,就不翻译了-.- 解题思路: 不知道算不算一个典型的数位DP,反正有点那个意思,感觉确实也可以用记忆话搜索,两个差不多的意思. 我找了一下,这个问题好像是算法设计与实验题解上面的一道题,别的OJ上没有,所以就在自己OJ上做了. 大体的思路

数字统计(0)&lt;P2010_1&gt;

数字统计   (two.pas/c/cpp) [问题描述] 请统计某个给定范围[L, R]的所有整数中,数字 2 出现的次数.  比如给定范围[2, 22],数字 2 在数2中出现了 1次,在数 12中出现 1 次,在数 20 中出现 1 次,在数 21 中出现 1 次,在数 22 中出现 2 次,所以数字 2 在该范围内一共出现了 6次.  [输入] 输入文件名为 two.in.  输入共 1 行,为两个正整数 L 和 R,之间用一个空格隔开.  [输出] 输出文件名为 two.out.  输

一款纯css3实现的数字统计游戏

今天给大家分享一款纯css3实现的数字统计游戏.这款游戏的规则的是将所有的数字相加等于72.这款游戏的数字按钮做得很美观,需要的时候可以借用下.一起看下效果图: 在线预览   源码下载 实现的代码. html代码: <h1> CSS Counter Game</h1> <section> <h2> Pick the numbers that add up to 72:</h1> <input id="a" type=&q

AC日记——数字统计 openjudge 1.5 41

41:数字统计 总时间限制:  1000ms 内存限制:  65536kB 描述 请统计某个给定范围[L, R]的所有整数中,数字2出现的次数. 比如给定范围[2, 22],数字2在数2中出现了1次,在数12中出现1次,在数20中出现1次,在数21中出现1次,在数22中出现2次,所以数字2在该范围内一共出现了6次. 输入 输入共 1 行,为两个正整数 L 和 R,之间用一个空格隔开. 输出 输出共 1 行,表示数字 2 出现的次数. 样例输入 样例 #1: 2 22 样例 #2: 2 100 样

数字统计问题

1.      一本书的页码从自然数1开始顺序编码直到自然数n.书的页码按照通常的习惯编排,每个页码都不含多余的前导数字0.例如第6页用6表示而不是06或006.数字统计问题要求对给定书的总页码,计算出书的全部页码中分别用到多少次数字0,1,2,3,.....9. 思路:对于n位数,例如3位数,000-999,出现0,1,2...9的次数相同,记每个数字出现的次数为avg,这10个数字出现的总次数为sum=10*avg. 而n位数共有10^n个数,每个具体的数对于sum的贡献为n次. 得到:10

zznu 1255 数字统计(数位DP, 数学方法)

最近在学数位DP, 感觉还是满有收获的! 做了几个题之后想起来自己OJ上曾经做的一道题,以前是用数学方法写的,现在改用数位DP来写了一遍. 题目: 1255: 数字统计 时间限制: 1 Sec  内存限制: 128 MB提交: 31  解决: 4[提交][状态] 题目描述 一本书的页码从自然数1 开始顺序编码直到自然数n.书的页码按照通常的习惯编排, 每个页码都不含多余的前导数字0.例如,第6 页用数字6 表示,而不是06 或006 等.数 字计数问题要求对给定书的总页码n,计算出书的全部页码中

[华为机试练习题]16.数字统计

题目 题目标题: 对输入的整型数组,输出数组元素中的最大值.最大值的个数.最小值和最小值的个数 详细描述: 接口说明 原型: voidOutputMaxAndMin(int * pInputInteger,intInputNum,int * pMaxValue,int * pMaxNum,int * pMinValue,int * pMinNum); 输入参数: Int * pInputInteger:整型数组指针 Int InputNum:数组元素个数 输出参数(指针指向的内存区域保证有效):

数字统计(LeetCode Number of digit One)

1.      一本书的页码从自然数1开始顺序编码直到自然数n.书的页码按照通常的习惯编排,每个页码都不含多余的前导数字0.例如第6页用6表示而不是06或 006.数字统计问题要求对给定书的总页码,计算出书的全部页码中分别用到多少次数字0,1,2,3,.....9. 思路:对于n位数,例如3位数,000-999,出现0,1,2...9的次数相同,记每个数字出现的次数为avg,这10个数字出现的总次数为sum=10*avg. 而n位数共有10^n个数,每个具体的数对于sum的贡献为n次. 得到:1

Chang&#39;an(Palindrome Numbers-回文数字统计)

统计前半个回文串 #include <bits/stdc++.h> using namespace std; #define For(i,n) for(int i=1;i<=n;i++) #define ForD(i,n) for(int i=n;i;i--) #define ForkD(i,k,n) for(int i=n;i>=k;i--) #define Rep(i,n) for(int i=0;i<n ;i++) #define MAXN (1000000000+10

洛谷——P1179 数字统计

https://www.luogu.org/problem/show?pid=1179 题目描述 请统计某个给定范围[L, R]的所有整数中,数字 2 出现的次数. 比如给定范围[2, 22],数字 2 在数 2 中出现了 1 次,在数 12 中出现 1 次,在数 20 中出 现 1 次,在数 21 中出现 1 次,在数 22 中出现 2 次,所以数字 2 在该范围内一共出现了 6 次. 输入输出格式 输入格式: 输入文件名为 two.in. 输入共 1 行,为两个正整数 L 和 R,之间用一个