zoukankan      html  css  js  c++  java
  • 2021寒假每日一题《明明的随机数》

    明明的随机数

    题目来源:NOIP2006普及组
    时间限制:(1000ms) 内存限制:(64mb)

    题目描述

    明明想在学校中请一些同学一起做一项问卷调查。
    为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数,对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。
    然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。
    请你协助明明完成“去重”与“排序”的工作。

    输入格式

    输入文件包含2行,第1行为1个正整数,表示所生成的随机数的个数:N 。
    第2行有N个用空格隔开的正整数,为所产生的随机数。

    输出格式

    输出文件也是2行,第1行为1个正整数M,表示不相同的随机数的个数。
    第2行为M个用空格隔开的正整数,为从小到大排好序的不相同的随机数。

    数据范围

    (1 ≤ N ≤ 100)

    样例输入

    10
    20 40 32 67 40 20 89 300 400 15
    

    样例输出

    8
    15 20 32 40 67 89 300 400
    

    解题思路

    用一个 List<Integer> 存放数据,读入的时候判断 list 内是否已经有此元素,如果有,则不进行录入;如果没有,则进行录入且计数 ans +1。
    使用JavaAPI自带的 Collections.sort(list)list 进行排序。
    第一行输出计数 ans
    第二行依次输出 list 内的元素。

    解题代码-Java

    import java.util.List;
    import java.util.Scanner;
    import java.util.ArrayList;
    import java.util.Collections;
    
    public class Main {
        public static void main(String[] args) {
            Scanner input = new Scanner(System.in);
            int n = input.nextInt();
            List<Integer> list = new ArrayList<>();
            int ans = 0;
            for (int i = 0; i < n; i++) {
                int inp = input.nextInt();
                if (!list.contains(inp)) {
                    ans++;
                    list.add(inp);
                }
            }
            input.close();
            System.out.println(ans);
            Collections.sort(list);
            for (int i : list) {
                System.out.printf("%d ", i);
            }
        }
    }
    
  • 相关阅读:
    Linux学习之查看是否安装软件
    Linux学习之nfs实例
    Linux学习之nfs安装配置
    Linux 学习之防火墙配置
    Linux学习之系统时间同步
    Linux学习之守护进程详解
    Linux学习之Center os网络配置
    Linux学习之挂载操作
    Linux学习之挂载
    Linux学习之开机启动
  • 原文地址:https://www.cnblogs.com/hurentian/p/14391681.html
Copyright © 2011-2022 走看看