向一个数组中添加100个不重复的随机数的几个方法

import java.util.Arrays;
class Input100 {
    public static void main(String[] args) {
        int[] arr = new int[100];
        arr[0]=(int)(Math.random()*100+1);
        boolean flag = true;
        a:while(flag){
            for(int i = 0;i < arr.length;i++){
                for (int j = 0;j < i ;j++ ) {
                    if (arr[j] == arr[i]) {
                        arr[i]=(int)(Math.random()*100+1);
                        continue a;
                    }
                }
            }
            flag = false;
        }
                Arrays.sort(arr);
        for (int i = 0;i < arr.length ;i++ ) {
            System.out.print(arr[i]+" ");
        }

    }
}            

其中在循环阶段,还有另一种方法

import java.util.Arrays;
class Input100 {
    public static void main(String[] args) {
        int[] arr = new int[100];
        arr[0]=(int)(Math.random()*100+1);
        boolean flag = true;
                a:for(int i = 0; i < arr.length;i++) {
                for(int j = 0; j < i;j++) {
                    if(arr[j]==arr[i]) {
                        arr[i]=(int)(Math.random()*100+1);
                        i--;
                        continue a;
                    }
                }
            }
        Arrays.sort(arr);
        for (int i = 0;i < arr.length ;i++ ) {
            System.out.print(arr[i]+" ");
        }

    }
}
            

除此之外,学完random和增强for循环后,也可以替换以前的方法

package com.zuikc.object;

import java.util.Arrays;
import java.util.Random;

public class Demo123 {

    public static void main(String[] args) {       Random r = new Random();
            int[] arr = new int[100];
            arr[0]=(int)(r.nextInt(100)+1);
            boolean flag = true;

            a:while(flag){
                for(int i = 0;i < arr.length;i++){
                    for (int j = 0;j < i ;j++ ) {
                        if (arr[j] == arr[i]) {
                            arr[i]=(int)(r.nextInt(100)+1);
                            continue a;
                        }
                    }
                }
                flag = false;
            }
            Arrays.sort(arr);
            for (int i : arr) {
                System.out.println(i);
            }

        }
    }

原文地址:https://www.cnblogs.com/zhangzheng1989/p/9387574.html

时间: 2024-09-30 19:08:49

向一个数组中添加100个不重复的随机数的几个方法的相关文章

动态数组,数组初始化,数组内存释放,向数组中添加一个元素,向数组中添加多个元素,数组打印,顺序查找,二分查找,查找数组并返回地址,冒泡排序,改变数组中某个元素的值,删除一个数值,删除所有,查找含有

 1定义接口: Num.h #ifndef_NUM_H_ #define_NUM_H_ #include<stdio.h> #include<stdlib.h> /************************************************************************/ /*数组的结构体类型                                                    */ /*******************

在数组中添加一个元素进行(替换 删除 插入)

#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { //可变数组继承不可变数组 //1.创建  设定元素个数进行创建 NSMutableArray *mutArr=[NSMutableArray arrayWithCapacity:7]; //2.向数组中添加一个元素 NSArray *[email protected][@"MON",@

程序员面试100题之十:快速找出一个数组中的两个数字,让这两个数字之和等于一个给定的值(转)

能否快速找出一个数组中的两个数字,让这两个数字之和等于一个给定的值,为了简化起见,我们假设这个数组中肯定存在至少一组符合要求的解. 假如有如下的两个数组,如图所示: 5,6,1,4,7,9,8 给定Sum= 10 1,5,6,7,8,9 给定Sum= 10 分析与解法 这个题目不是很难,也很容易理解.但是要得出高效率的解法,还是需要一番思考的. 解法一 一个直接的解法就是穷举:从数组中任意取出两个数字,计算两者之和是否为给定的数字. 显然其时间复杂度为N(N-1)/2即O(N^2).这个算法很简

【学】从一个数组中找出重复最多的元素,并统计重复个数

通过json,将数组中的值都传给json中的键,利用json中的键是不能重复的性能,同时如果遇到重复的键,那就让这个键的值自增1,这样就能统计出重复次数 上面的方法可以得出一个json,但是还不够,因为无法比较json里的键或者值的大小,就要再将Json里的每组数据组成一个个小的json装到一个数组中,将统计的数量赋给每个json中的值,利用数组的sort的比较函数进行排序即可 function myMaxElement(arr){ var json = {}; for (var i=0; i<

面试题--&gt;写一个函数,返回一个数组中所有元素被第一个元素除的结果

1 package com.rui.test; 2 3 import java.util.Random; 4 5 /** 6 * @author poseidon 7 * @version 1.0 8 * @date:2015年10月25日 上午11:12:24 9 * @description: 面试题-->写一个函数,返回一个数组中所有元素被第一个元素除的结果 10 * 陷阱: 11 * 1.循环需要倒着写,为什么? 12 * 想想顺着写循环的结果,第一个元素的值会发生变化门后面再除就会有问

javascript 数组,数组中添加新元素 push() ,unphsh() 相当于Add()

<1> var   a   =   [];     //建立数组 push   方法 将新元素添加到一个数组中,并返回数组的新长度值.

查找一个数组中最小的前n项

/****************************************************************** find the biggest x number in a sequence* the basic method is the same as the QuickSort** 1. move the smaller one before the pivot* 2. move the bigger one after the pivot* 3. determin

4.产生10个1-100的随机数,并放到一个数组中 (1)把数组中大于等于10的数字放到一个list集合中,并打印到控制台。 (2)把数组中的数字放到当前文件夹的numArr.txt文件中

package cn.it.text; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; /* * 4.产生10个1-100的随机数,并放到一个数组中 (1)把数组中大于等于10的数字放到一个list集合中,并打印到控制台. (2)把数组中的数字放到当前文件夹的number.txt文件中 */ public class Test4 { public static void main

算法题:找出一个数组中相加值最大的连续序列元素

package arithmetic; /** * @author SHI * 求一个数组中相加值最大的连续序列元素 */ public class MaxSequence { public static void main(String[] args) { int[] a=new int[]{-2,9,-3,4,-6,7,-6,4}; findBigSequence(a); } /** * 思想: (1)计算出该数组的所有元素和,假设该值为最大 * (2)从数组下标1到a.length-1依次