明明生成了N个1到500之间的随机整数。请你删去其中重复的数字,即相同的数字只保留一个,把其余相同的数去掉,然后再把这些数从小到大排序,按照排好的顺序输出。(java)

本文介绍了在Java中如何使用Math.random()方法和Random类生成随机整数,以及通过Scanner类从键盘获取用户输入的整数。提供了具体的代码示例,包括随机生成1-1000之间的整数并排序,以及用户输入1-500整数的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言

Java是大家熟知的编程语言,使用Java进行一些实际问题的解答也很常见,本文开始会整理本人自己遇到的算法题,希望对大家有帮助。


提示:以下是本篇文章正文内容,下面代码可供参考

一、随机生成整数

1.方法一

本文采取的是Math.random()方法来生成随机整数,这个方法实际生成的是[0,1)之间的随机小数,我们可以把它乘以一个整数并将结果强制转换以得到我们想要的随机整数。
(数据类型)(1+Math.random()*(最大范围数-最小范围数+1))
生成1个1-100之间的随机整数

int i = (int)(1+Math.random()*100)

2.方法二

在java.util包内提供了一个Random类,这个类可以生成一定范围的随机数,包括int、float、double和long类型。
代码如下:

//构造函数,不指定种子数
Random random = new Random();
//指定种子数
Random random = new Random(1000);

种子数指的是随机算法的起源数字,之后会在这个范围内进行变化。
以上两种方法的区别在于,指定种子数后,每次随机生成的数字都是相同的。
随机生成[0,100)之间的整数,代码如下:

int i = random.nextInt(100);

二、从键盘输入整数

在java.util包内提供了一个Scanner类,这个类可以实现从键盘输入内容。
从键盘输入整数代码如下:

Scanner scan = new Scanner(System.in);
int i = scan.nextInt();

三、具体代码

1.随机生成整数

代码如下:

public void ra(){
        int N = (int)(1+Math.random()*1000);
        System.out.println("随机生成的整数数量为"+N);
        int[] arry = new int[N];
        for(int i = 0;i < N;i++){
            int n = (int)(1+Math.random()*500);
            arry[i]=n;
        }
        Arrays.sort(arry);
        System.out.println(arry[0]);
        for (int j = 1;j < N;j++){
            if(arry[j] != arry[j-1]){
                System.out.println(arry[j]);
            }
        }
    }

2.从键盘输入符合条件的整数

代码如下:

public void sc(){
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入随机整数的个数(1-1000):");
        int N = scan.nextInt();
        int[] arr = new int[N];
        for(int i = 0; i < N; i++){
            System.out.println("请输入随机整数值(1-500):");
            int n = scan.nextInt();
            arr[i] = n;
        }
        Arrays.sort(arr);
        System.out.println("排序后的整数序列为:");
        System.out.println(arr[0]);
        for(int i = 1; i < N; i++) {
            if (arr[i] != arr[i - 1]) {
                System.out.println(arr[i]);
            }
        }
    }

总结

以上就是本文对此问题的解答,或许答案不尽完美,但希望对大家有所帮助,欢迎批评指正!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值