C++ 编程练习:小西瓜的随机数去重排序
C++ 编程练习:小西瓜的随机数去重排序
题目描述
小西瓜想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了 'N' 个 '1' 到 '1000' 之间的随机整数 ('N'≤'100'),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助小西瓜完成'去重'与'排序'的工作。
输入格式
输入有两行,第 '1' 行为 '1' 个正整数,表示所生成的随机数的个数 'N'。
第 '2' 行有 'N' 个用空格隔开的正整数,为所产生的随机数。
输出格式
输出也是两行,第 '1' 行为 '1' 个正整数 'M',表示不相同的随机数的个数。
第 '2' 行为 'M' 个用空格隔开的正整数,为从小到大排好序的不相同的随机数。
样例 #1
样例输入 #1
10
20 40 32 67 40 20 89 300 400 15
样例输出 #1
8
15 20 32 40 67 89 300 400
提示
对于 '20%' 的数据,数字之间两两不相等。
对于另外 '20%' 的数据,所有数字都相等。
对于 '100%' 的数据,有 'n' ≤ '100'。
C++ 代码
#include <iostream>
#include <set>
using namespace std;
int main() {
int N;
cin >> N;
set<int> nums;
for (int i = 0; i < N; i++) {
int num;
cin >> num;
nums.insert(num);
}
cout << nums.size() << endl;
for (auto it = nums.begin(); it != nums.end(); it++) {
cout << *it << " ";
}
cout << endl;
return 0;
}
原文地址: https://www.cveoy.top/t/topic/phOl 著作权归作者所有。请勿转载和采集!