求一批整数中出现最多的数字。输入一个正整数 n (1<n≤1000),再输入 n 个整数,分析 每个整数的每一位数字,求出现次数最多的各位数字。例如输入 3 个整数 1234、2345、3456, 其中出现次数最多的数字是 3 和 4,均出现了 3 次。试编写相应程序。
时间: 2023-06-06 11:08:56 浏览: 222
delete--number.rar_K._delete namber_delete number_给定n位正整数
5星 · 资源好评率100%
好的,我可以回答这个问题。以下是我的解答:
将每个整数的每一位数字存储到一个数组中,然后遍历这个数组,用一个 map 来记录每个数字出现的次数。最后遍历 map,找到出现次数最多的数字。
具体操作步骤如下:
1. 输入一个正整数 n。
2. 输入 n 个整数,将每个整数的每一位数字存储到一个数组中。
3. 遍历数组,并使用一个 map 记录每个数字出现的次数。
4. 找到出现次数最多的数字,即 map 中值最大的键。
5. 输出出现次数最多的数字。
以下是一个示例代码:
```
#include <iostream>
#include <map>
using namespace std;
int main() {
int n;
cin >> n;
int num[n];
for (int i = 0; i < n; i++) {
cin >> num[i];
}
map<int, int> mp;
for (int i = 0; i < n; i++) {
int temp = num[i];
while (temp) {
mp[temp % 10]++;
temp /= 10;
}
}
int max_num = -1;
int max_count = 0;
for (auto it = mp.begin(); it != mp.end(); it++) {
if (it->second > max_count) {
max_count = it->second;
max_num = it->first;
}
}
cout << max_num << " " << max_count << endl;
return 0;
}
```
当输入为:
```
3
1234 2345 3456
```
输出为:
```
3 3
```
这表示数字 3 和 4 都出现了 3 次,其中数字 3 出现次数最多。
阅读全文