zl程序教程

您现在的位置是:首页 >  其他

当前栏目

阿里笔试-从1到1000生成900个不重复的随机数并打印出来

阿里 生成 重复 笔试 随机数 出来 1000 900
2023-09-14 08:57:57 时间
p span >前几天参加阿里笔试,有道程序题大意是这样的,从1到1000生成900个不重复的随机数并打印出来。当时做了好久,勉强做出来了,和大家分享一下,如果您有更好的方法,望不吝赐教。

我的思路是:

1.定义数组arr存入随机数;

2.用Arrays.binarySearch()搜索数组中是否包含新生成的的随机数;

3.不包含则将新随机数存进数组,包含则不添加;

4.Arrays.binarySearch()需要对数组排序,所以得复制一个相同的数组来排序并检测是否包含新随机数,不然最后生成的随机数就只有450个了,其余全部是0。

代码如下

import java.util.*;

public class test1 {

 public static void main(String[] args) {

 int[] arr = new int[900];// 创建2个数组

 int[] arr2=new int[900]; 

 for (int i = 899; i i--) {

 int a = (int) ((Math.random()) * 1001);// 生成1到1000的随机数a

 Arrays.sort(arr2);//排序后才能用binarySearch()方法

 int result = Arrays.binarySearch(arr2, a);// 查看数组arr2中是否有a

 if (result 0) {// 没有a就把a加入数组

 arr[i] = a;

 arr2[i]=a;

 } else

 // 有a就把i加1,使i值不变

 i++;

 for (int i = 0; i 900; i++)

 System.out.println("第" + (i + 1) + "个: " + arr[i]);

如果您有任何问题,欢迎留言。

 祝君好运!


zxiaofan 【zxiaofan.com】Life is all about choices!生命不息,学习不止。