任意输入10 个正整数,求其中互不相同的数的个数num,以及此num 个数中哪一个数的出现次数最多,共出现了几次。
时间: 2023-05-31 11:20:27 浏览: 153
### 回答1:
输入10个正整数,求其中互不相同的数的个数num,以及此num个数中哪一个数的出现次数最多,共出现了几次。
首先,我们需要将输入的10个正整数去重,得到互不相同的数的个数num。可以使用set()函数实现去重操作。
然后,我们可以使用字典来记录每个数出现的次数,找出出现次数最多的数及其出现次数。
具体实现如下:
```python
# 输入10个正整数
nums = list(map(int, input().split()))
# 去重,得到互不相同的数的个数num
num = len(set(nums))
# 使用字典记录每个数出现的次数
count_dict = {}
for n in nums:
if n in count_dict:
count_dict[n] += 1
else:
count_dict[n] = 1
# 找出出现次数最多的数及其出现次数
max_count =
max_num =
for n, count in count_dict.items():
if count > max_count:
max_count = count
max_num = n
# 输出结果
print("互不相同的数的个数为:", num)
print("出现次数最多的数为:", max_num)
print("共出现了", max_count, "次")
```
注意,如果输入的10个数中有重复的数,那么这些重复的数只会被计算一次。
### 回答2:
假设输入的10个正整数分别为a1, a2, a3, ……, a10。
首先,我们可以使用一个set集合来存储这些数,利用set自动去重的特性,得到其中互不相同的数的个数num。具体步骤如下:
1. 定义一个set集合,使用循环遍历输入的10个数,将每个数加入set中。
2. 利用set的size()函数,得到set中元素的个数,即为互不相同的数的个数。
代码如下:
```c++
#include <iostream>
#include <set>
using namespace std;
int main() {
set<int> s;
for(int i=1; i<=10; i++) {
int num;
cin >> num;
s.insert(num);
}
int num = s.size();
cout << "互不相同的数的个数为:" << num << endl;
return 0;
}
```
接下来,我们需要找到num个数中出现次数最多的数,以及它出现的次数。可以使用一个map来存储每个数出现的次数,然后遍历map,得到出现次数最多的那个数。具体步骤如下:
1. 定义一个map<int, int>,其中key表示数值,value表示该数值出现的次数。
2. 使用循环遍历输入的10个数,对于每个数,判断它是否存在于map中,如果不存在,则将其插入map,并将其出现次数设为1。如果存在,则将其出现次数加1。
3. 找到map中出现次数最多的数,可以使用一个pair<int, int>类型的变量来记录,其中first表示数值,second表示出现次数。遍历map,依次比较每个数出现的次数,找到出现次数最多的那个数。
代码如下:
```c++
#include <iostream>
#include <set>
#include <map>
using namespace std;
int main() {
set<int> s;
map<int, int> m;
for(int i=1; i<=10; i++) {
int num;
cin >> num;
s.insert(num);
if(m.count(num) == 0) { // 如果num不在map中
m[num] = 1; // 将num插入map,并将其出现次数设为1
} else {
m[num]++; // 如果num已经在map中,将其出现次数加1
}
}
int num = s.size();
cout << "互不相同的数的个数为:" << num << endl;
int max_num = -1;
int max_count = -1;
for(auto it=m.begin(); it!=m.end(); it++) {
if(it->second > max_count) { // 如果当前数的出现次数比记录的出现次数多
max_num = it->first; // 将当前数设为最大数
max_count = it->second; // 将当前数的出现次数设为最大出现次数
}
}
cout << "出现次数最多的数为:" << max_num << ",共出现了" << max_count << "次。" << endl;
return 0;
}
```
综上,输入10个正整数,程序可以输出其中互不相同的数的个数num,以及此num个数中哪一个数的出现次数最多,共出现了几次。
### 回答3:
首先,我们要对输入的10个正整数进行去重操作,得到互不相同的数的个数。可以使用set集合来实现快速去重,具体实现如下:
```python
nums = input().split() # 将输入的字符串转为列表
nums = [int(num) for num in nums] # 将列表中的元素转为整数类型
distinct_nums = set(nums) # 去重得到互不相同的数
num = len(distinct_nums) # 获取互不相同的数的个数
```
接下来,我们需要统计每个数在原始列表中的出现次数,找到出现次数最多的数及其出现次数。为此,我们可以使用字典来实现出现次数的统计,具体实现如下:
```python
count_dict = {} # 定义空字典,用于存储每个数的出现次数
for num in nums:
if num in count_dict:
count_dict[num] += 1
else:
count_dict[num] = 1
# 找到出现次数最多的数,以及其出现次数
max_count = 0 # 最大出现次数
max_num = None # 出现次数最多的数
for num, count in count_dict.items():
if count > max_count:
max_count = count
max_num = num
print(f"{max_num}出现次数最多,共出现了{max_count}次")
```
综上所述,完整代码如下:
```python
nums = input().split() # 将输入的字符串转为列表
nums = [int(num) for num in nums] # 将列表中的元素转为整数类型
distinct_nums = set(nums) # 去重得到互不相同的数
num = len(distinct_nums) # 获取互不相同的数的个数
count_dict = {} # 定义空字典,用于存储每个数的出现次数
for num in nums:
if num in count_dict:
count_dict[num] += 1
else:
count_dict[num] = 1
# 找到出现次数最多的数,以及其出现次数
max_count = 0 # 最大出现次数
max_num = None # 出现次数最多的数
for num, count in count_dict.items():
if count > max_count:
max_count = count
max_num = num
print(f"互不相同的数的个数为{num}")
print(f"{max_num}出现次数最多,共出现了{max_count}次")
```
阅读全文