问题分析:
我们需要统计每个整数的个位数字出现的次数,并找到出现次数最多的个位数字。
解决方案:
我们可以使用一个大小为10的数组来统计每个数字出现的次数,数组索引表示数字,数组元素表示出现次数。遍历每个整数,将其个位数字对应的计数加1。然后再遍历计数数组,找到出现次数最多的数字。
以下是一个实现该问题的C++代码:++#include <iostream>#include <vector>using namespace std;int main() { int N; cin >> N; vector<int> count(10, 0); // 用于记录每个数字出现的次数 for (int i = 0; i < N; i++) { int num; cin >> num; while (num != 0) { int digit = num % 10; // 获取个位数字 count[digit]++; // 对应数字的计数加1 num /= 10; // 移除已经处理过的个位数字 } } int maxCount = 0; for (int i = 0; i < 10; i++) { if (count[i] > maxCount) { maxCount = count[i]; } } cout << maxCount << ":"; for (int i = 0; i < 10; i++) { if (count[i] == maxCount) { cout << " " << i; } } return 0;}
代码说明:
1. 首先,我们定义了一个大小为10的计数数组count,并初始化为0。这个数组用来统计每个数字出现的次数。
2. 然后,我们使用一个循环遍历每个整数。对于每个整数,我们通过不断取余和整除10的操作,获取其个位数字,并将对应的计数加1。
3. 接下来,我们遍历计数数组,找到出现次数最多的数字。我们使用一个变量maxCount来记录最大次数,并逐个比较每个数字的计数。
4. 最后,我们输出结果。首先输出最大次数maxCount,然后遍历计数数组,输出计数等于maxCount的数字。
希望以上解答能满足你的需求,如果有任何进一步的问题,请随时提问。
球一个最佳答案谢谢啦!这对我非常重要! |