利用hash统计分数
2018-01-15 10:35
169 查看
题目描述
输入
输出
样例输入
样例输出
代码
总结
读入 N 名学生的成绩,将获得某一给定分数的学生人数输出。
输入
测试输入包含若干测试用例,每个测试用例的格式为 第 1 行:N 第 2 行:N 名学生的成绩,相邻两数字用一个空格间隔。 第 3 行:给定分数 当读到 N=0 时输入结束。其中 N 不超过 1000,成绩分数为(包含)0 到 100 之间的一个整数。
输出
对每个测试用例,将获得给定分数的学生人数输出。
样例输入
3 80 60 90 60 2 85 66 0 5 60 75 90 55 75 75 0
样例输出
1 0 2
代码
#include <stdio.h> int main(int argc, const char * argv[]) { int hash[101] = {0}; int n; while(scanf("%d",&n) !=EOF && n != 0){ int a ; for(int i = 0;i < n;i ++){ scanf("%d", &a[i]); hash[a[i]] ++; } int x; scanf("%d", &x); printf("%d\n",hash[x]); } return 0; }
总结
该解法利用了输入只有 0 到 100 这 101 种可能的特点。利用其与数组下标对 应的方法分别统计各分数出现的次数。初始时,我们将数组初始化为 0,代表着 每一个分数出现的次数都是 0。当开始输入分数时,我们依据输入的分数 x,累 加代表其出现次数的数组元素 Hash[x],从而统计其重复次数。这里,我们利用 读入的分数直接作为数组下标来访问该元素,因此这个过程十分快捷。当输入完 成后,Hash 数组中就已经保存了每一个分数出现的次数。当我需要查询分数 x 出现的次数时,只需访问统计其出现次数的数组元素 Hash[x],便能得知答案。
相关文章推荐
- 九度OJ 题目1018:统计同成绩学生人数(利用Hash)
- 利用Flash制作的分数统计程序
- 利用hash空间换取时间的思想统计同成绩学生人数C++--王道机试
- map hash_map unordered_map 性能测试 统计
- 海量数据面试题----分而治之/hash映射 + hash统计 + 堆/快速/归并排序
- 利用Oracle内置分析函数进行高效统计汇总
- 利用SqlConnection获得SqlServer的统计信息
- java利用map来实现可视化统计随机数分布
- 网站点击量统计,如何利用缓存实现点击量统计
- 【解题报告】 URAL 1333 Genie Bomber 2 -- 利用类似统计的方法计算覆盖效率
- python利用wmi模块统计windows下网卡信息和连接数
- Session监听统计网站的在线人数HashSet
- 用python打造中英文词频统计系统(1)--利用tkinter设计图形化界面
- 利用Oracle内置分析函数进行高效统计汇总
- 利用IHttpModule及Session_End事件进行在线会员统计遇到的问题
- 运动会分数统计系统开发
- java利用mybatis拦截器统计sql执行时间示例
- 是否可以用sql语句实现分数的分段人数统计解决方法
- 利用正则表达式统计单词个数