9个同学一起做游戏,每个人报一个[1,20]区间上的正整数,请你编程求出有多少个不同的数。
时间: 2023-08-31 17:42:11 浏览: 209
给定2到15个不同的正整数,你的任务是计算这些数里面有多少个数对满足:数对中一个数是另一个数的两倍。
### 回答1:
可以使用set数据结构来去重,以下是示例代码:
```
#include <iostream>
#include <set>
using namespace std;
int main() {
set<int> s;
for (int i = 0; i < 9; i++) {
int num;
cin >> num;
s.insert(num);
}
cout << s.size() << endl;
return 0;
}
```
输入9个数,将它们插入set中,最后输出set的大小即可。
### 回答2:
假设我们用一个列表来记录每个同学报的数字,我们可以用一个集合来存储所有不同的数字。首先我们创建一个空的集合,然后依次读取每个同学报的数字,将其添加到集合中。最后,我们可以通过查询集合的大小来得到有多少个不同的数字。
下面是一个简单的Python代码示例来实现这个算法:
```python
# 创建一个空集合用于存储不同的数字
unique_numbers = set()
# 循环读取每个同学报的数字
for i in range(9):
number = int(input("请输入同学报的数字:"))
# 将数字添加到集合中
unique_numbers.add(number)
# 输出不同数字的个数
print("不同的数字个数为:", len(unique_numbers))
```
请注意,这个代码示例假设用户输入的数字为1到20之间的正整数,并且每个同学的输入都是有效的。如果需要,你可以根据具体的情况进行适当的输入验证和错误处理。
阅读全文