三 Hash应用
概念: 将储存位置与数据本身对应起来的储存手段就是Hash.
题目描述:
读入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<bits/stdc++.h>
using namespace std;
int main()
{
int n;
while(scanf("%d", &n) != EOF && n != 0){//n=0时输入结束
int Hash[101] = {0};
for(int i=0; i<n; i++){
int x;
cin >> x;
Hash[x]++;
}
int x;
cin >> x;
cout << Hash[x];
}
return 0;
}