给出若干个正整数,请找出出现次数最多的数。 输入格式: 在一行中输入若干个数,以空格间隔(读入数的总个数不超过5000)。 输出格式: 输出出现次数最多的数(若答案不唯一,输出最小的那个)。
时间: 2024-04-05 21:33:34 浏览: 63
您可以使用以下代码实现找出出现次数最多的数:
```python
nums = input().split() # 输入若干个数,以空格间隔
count = {} # 用于记录每个数的出现次数
for num in nums:
if num in count:
count[num] += 1
else:
count[num] = 1
max_count = max(count.values()) # 获取出现次数最多的数的次数
result = min([num for num in count if count[num] == max_count]) # 找到出现次数最多的数中最小的那个
print(result) # 输出结果
```
以上代码会读取一行输入的若干个数,并使用一个字典 `count` 记录每个数的出现次数。然后通过找到出现次数最多的数中最小的那个,输出结果。
相关问题
给出若干个正整数,请找出出现次数最多的数。 输入格式: 在一行中输入若干个数,以空格间隔(读入数的总个数不超过5000)。 输出格式: 输出出现次数最多的数(若答案不唯一,输出最小的那个)。
解决这个问题的一种常见方法是利用哈希表或者类似的数据结构来记录每个数字出现的次数。首先读取所有输入的正整数,然后对每一个数,我们在数据结构中增加相应的计数。最后,我们遍历这个数据结构,找到计数值最大的那个数。如果有多个数出现次数相同且是最频繁的,我们可以返回其中的最小值。
这里是一个简单的Python代码示例:
```python
def find_most_frequent(nums):
count_dict = {} # 使用字典存储计数
for num in nums:
if num in count_dict:
count_dict[num] += 1
else:
count_dict[num] = 1
max_count = max(count_dict.values()) # 找到最大计数
mode_numbers = [num for num, freq in count_dict.items() if freq == max_count] # 获取所有出现次数最多的数据
# 返回最小的那个数
return min(mode_numbers) if mode_numbers else None
# 测试用例
nums = [1, 2, 2, 3, 4, 4, 4]
print(find_most_frequent(nums)) # 输出:4
```
c语言:给出若干个正整数,请找出出现次数最多的数。 输入格式: 在一行中输入若干个数,以空格间隔(读入数的总个数不超过5000)。 输出格式: 输出出现次数最多的数(若答案不唯一,输出最小的那个)。
在C语言中,解决这个问题可以使用哈希表或者数组+计数的方式来实现。这里我们采用数组+计数的方式,因为数组的空间复杂度较低,适合处理不超过5000个数的情况。
首先,我们需要一个足够大的数组存储这些数字及其对应的出现次数,然后遍历输入的所有数字。对于每个数字,如果它已经在数组中,就增加它的计数;如果不在,就在数组中创建一个新的元素并设置计数为1。
遍历结束后,数组中的最大计数表示出现次数最多,对应的索引位置就是出现次数最多的数字。需要注意的是,如果存在多个数出现次数相同且都是最大值,我们要返回其中的最小值。
以下是伪代码:
```c
int* numbers; // 数组存放数字
int count[5001] = {0}; // 初始化计数数组
// 遍历输入的数字
for (int i = 0; i < num_of_numbers; i++) {
int current_num = input[i]; // 当前数字
if (current_num > 5000) break; // 大于5000则结束,假设输入合法
count[current_num]++;
}
// 找出最大计数和对应的数字
int max_count = 0;
int most_frequent = 0;
for (int i = 0; i <= 5000; i++) {
if (count[i] > max_count) {
max_count = count[i];
most_frequent = i;
}
}
// 输出结果
printf("出现次数最多的数(最小的那个): %d\n", most_frequent);
```
阅读全文