酷代码 AI
菜单
服务商

C++ 实现自然数出现次数统计并按顺序输出

以下是使用 C++ 语言解决该问题的代码: ```cpp #include <iostream> #include <map> using namespace std; int main() { int n; // 读取自然数的个数 cin >> n; // 使用 map 来统计每个自然数出现的次数 map<int, int> count; for (int i = 0; i < n; i++) { int num; // 读取每个自然数 cin >> num; // 如果该数已经在 map 中,将其出现次数加 1 if (count.find(num) != count.end()) { count[num]++; } else { // 如果该数不在 map 中,将其加入 map 并初始化出现次数为 1 count[num] = 1; } } // 遍历 map 并输出结果 for (auto it = count.begin(); it != count.end(); ++it) { // 输出自然数和该数出现的次数 cout << it->first << " " << it->second << endl; } return 0; } ``` ### 代码解释 1. **包含必要的头文件**:使用 `<iostream>` 进行输入输出操作,使用 `<map>` 来存储每个自然数及其出现的次数。 2. **读取输入**:首先读取自然数的个数 `n`,然后循环 `n` 次,每次读取一个自然数。 3. **统计次数**:使用 `map` 来统计每个自然数出现的次数。如果该数已经在 `map` 中,将其出现次数加 1;否则,将其加入 `map` 并初始化出现次数为 1。 4. **输出结果**:遍历 `map`,按照自然数从小到大的顺序输出每个自然数及其出现的次数。 ### 复杂度分析 - **时间复杂度**:$O(n log m)$,其中 $n$ 是自然数的个数,$m$ 是不同自然数的个数。主要是因为 `map` 的插入和查找操作的时间复杂度为 $O(log m)$。 - **空间复杂度**:$O(m)$,主要是 `map` 所占用的空间。 ######[AI问答 | 520点数解答 | 2026-05-30 20:19:45]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]