|
发表于 2023-11-3 11:50:43
|
显示全部楼层
这个问题可以通过使用哈希表来解决。首先,我们可以遍历所有的整数,然后对每个整数进行分析,统计每个个位数字出现的次数。最后,我们可以找到出现次数最多的个位数字。
以下是C++的代码实现:
- #include <iostream>
- #include <unordered_map>
- #include <vector>
- #include <algorithm>
- int main() {
- int N;
- std::cin >> N;
-
- std::unordered_map<int, int> digitCount;
-
- for (int i = 0; i < N; i++) {
- int num;
- std::cin >> num;
-
- while (num > 0) {
- int digit = num % 10;
- digitCount[digit]++;
- num /= 10;
- }
- }
-
- int maxCount = 0;
- std::vector<int> maxDigits;
-
- for (const auto& pair : digitCount) {
- int count = pair.second;
-
- if (count > maxCount) {
- maxCount = count;
- maxDigits.clear();
- maxDigits.push_back(pair.first);
- } else if (count == maxCount) {
- maxDigits.push_back(pair.first);
- }
- }
-
- std::sort(maxDigits.begin(), maxDigits.end());
-
- std::cout << maxCount << ": ";
-
- for (int i = 0; i < maxDigits.size(); i++) {
- std::cout << maxDigits[ i];
-
- if (i != maxDigits.size() - 1) {
- std::cout << " ";
- }
- }
-
- return 0;
- }
复制代码
这段代码首先读取输入的整数个数N,然后使用一个unordered_map来记录每个个位数字的出现次数。接下来,我们遍历每个整数,将其每个个位数字的出现次数记录在unordered_map中。然后,我们找到出现次数最多的个位数字,并将其放入一个vector中。最后,我们对vector进行排序,并输出结果。
希望能帮到你! |
|