给定一个非负整数数组,统计里面每一个数的出现次数。我们只统计到数组里最大的数。 假设 Fmax(Fmax \le 100000)Fmax(Fmax≤100000)是数组里最大的数,那么我们只统计 \{0,1,2 \ldots Fmax \}{0,1,2…Fmax} 里每个数出现的次数。 输入格式 第一行 nn 是数组的大小。1 \le n \le 1000001≤n≤100000。 紧接着一行是数组的 nn 个元素。 输出格式 按顺序输出每个数的出现次数,一行一个数。如果没有出现过,则输出 00。 对于例子中的数组,最大的数是 33,因此我们只统计 \{0,1,2,3\}{0,1,2,3} 的出现频数。c++
时间: 2024-04-13 18:29:27 浏览: 12
以下是给定问题的C++实现代码:
```cpp
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n;
cin >> n;
vector<int> arr(n);
for (int i = 0; i < n; ++i) {
cin >> arr[i];
}
int Fmax = *max_element(arr.begin(), arr.end());
vector<int> count(Fmax+1, 0);
for (int num : arr) {
count[num]++;
}
for (int i = 0; i <= Fmax; ++i) {
cout << count[i] << endl;
}
return 0;
}
```
希望对你有所帮助!如果还有其他问题,请随时提问。
相关问题
给定一个非负整数数组,统计里面每一个数的出现次数。我们只统计到数组里最大的数.假设Fmax(Fmax≤100000)是数组里最大的数,那么我们只统计 {0,1,2…Fmax} 里每个数出现的次数。如何用c语言 做这道题
以下是用C语言实现统计非负整数数组中每个数出现次数的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_NUM 100001
int main()
{
int n, i, num;
int count[MAX_NUM] = {0}; // 初始化数组,用于记录每个数出现的次数
printf("请输入数组中元素的个数:");
scanf("%d", &n);
printf("请输入数组中的元素:\n");
for (i = 0; i < n; i++) {
scanf("%d", &num);
count[num]++; // 统计每个数出现的次数
}
printf("0~Fmax中每个数出现的次数如下:\n");
for (i = 0; i <= MAX_NUM; i++) {
if (count[i] != 0) {
printf("%d出现了%d次\n", i, count[i]);
}
}
return 0;
}
```
给定一个非负整数数组,统计里面每一个数的出现次数。我们只统计到数组里最大的数。 假设 Fmax(Fmax \le 100000)Fmax(Fmax≤100000)是数组里最大的数,那么我们只统计 \{0,1,2 \ldots Fmax \}{0,1,2…Fmax} 里每个数出现的次数。 输入格式 第一行 nn 是数组的大小。1 \le n \le 1000001≤n≤100000。 紧接着一行是数组的 nn 个元素。 输出格式 按顺序输出每个数的出现次数,一行一个数。如果没有出现过,则输出 00。 对于例子中的数组,最大的数是 33,因此我们只统计 \{0,1,2,3\}{0,1,2,3} 的出现频数。
我们可以使用一个长度为 Fmax+1 的数组来记录每个数的出现次数。首先将数组初始化为0,然后遍历给定的数组,对于每个元素,将对应位置的计数加1。最后遍历统计数组,输出每个数的出现次数即可。
以下是一个示例的Python代码实现:
```python
n = int(input())
arr = list(map(int, input().split()))
Fmax = max(arr)
count = [0] * (Fmax+1)
for num in arr:
count[num] += 1
for i in range(Fmax+1):
print(count[i])
```
希望能对你有所帮助!如果还有其他问题,请随时提问。