zoukankan      html  css  js  c++  java
  • 生成不重复的随机数(补充,以前写的)

    package com.demo.sw.test;
    
    /**
     * 
     * @author M.J
     *
     */
    public class NoReaptNum {
    	public static void main(String[] args) {
    		generateNoRepeatNums1();
    		generateNoRepeatNums2();
    	}
    
    	// 自己以前写过的方法
    	// 1、2两个方法大同小异,只是使用了不同的循环方式,仔细看看代码应该都理解
    	// 还有一篇是用 Set 写的,由于去某个 XX NB 国际公司面试,没有任何准备,结果很惨,
    	// 于是乎回家仔细研究,用 Set 在次写完后,忽然发现了,以前写的这个版本,同时也贴出来,告诫自己,同时供大家参考
    	public static void generateNoRepeatNums1() {
    		int[] arr = new int[100]; // 定义结果数组
    		boolean f = true; // 中间变量用来判断是有有重复的值
    		int x; // 每次随即生成的数
    
    		for (int i = 0; i < arr.length; i++) {
    			x = (int) (Math.random() * 200 + 1);
    			for (int j = 0; j < i; j++) {
    				if (arr[j] == x) {
    					f = false;
    					break;
    				} else {
    					f = true;
    				}
    			}
    			if (f) {
    				arr[i] = x;
    			} else {
    				i--;
    			}
    		}
    
    		prtArr(arr);
    	}
    
    	public static void generateNoRepeatNums2() {
    		int[] arr = new int[100];
    		int temp;
    		boolean f = true;
    
    		int i = 0;
    		while (i < arr.length) {
    			temp = (int) (Math.random() * 200 + 1);
    			for (int j = 0; j < i; j++) {
    				if (arr[j] == temp) {
    					f = false;
    					break;
    				} else {
    					f = true;
    				}
    			}
    
    			if (f) {
    				arr[i] = temp;
    				i++;
    			}
    		}
    
    		prtArr(arr);
    
    	}
    	
    	public static void prtArr(int[] arr){
    		for (int j = 0; j < arr.length; j++) {
    			if (j % 10 == 0) {
    				System.out.println();
    			}
    			System.out.print(arr[j] + " ");
    
    		}
    	}
    
    }
  • 相关阅读:
    arpspoof局域网断网攻击
    2019-2020 SEERC 2019
    2019-2020 XX Open Cup, Grand Prix of Korea
    欧拉函数板子
    Syncthing – 数据同步利器
    程序员的修养 -- 如何写日志(logging)
    css基础
    vim永久设置主题
    基金选择
    如何查看ntp端口是否正常
  • 原文地址:https://www.cnblogs.com/icenter/p/1988833.html
Copyright © 2011-2022 走看看