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;
}
C++ 编程练习:小西瓜的随机数去重排序

原文地址: https://www.cveoy.top/t/topic/phOl 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录