zoukankan      html  css  js  c++  java
  • 编写一个javscript函数 fn,该函数有一个参数 n(数字类型),其返回值是一个数组,该数组内是 n 个随机且不重复的整数,且整数取值范围是 [2, 32]。

    首先定义个fn用来返回整数的取值范围:

    function getRand(a,b){
        var rand = Math.ceil(Math.random()*(b-a)+a);
        return rand;
    }

    再写一个func用来做去重校验:

    复制代码
    function checkArrIn(rand,array){
        if(array.indexOf(rand) > -1){
            return true
        }
        return false;
    }
    复制代码

    最后是整体实现:

    复制代码
    function fn(n, min, max) {
        var arr = [];
        var isNum = !isNaN(Number(n));//判断n是不是一个数字,包含字符串类型的数字
        var isRandOk = (n >= min && n <= max && n <= (max - min)) ? true : false;//判断n的取值是否符合要求
        if (n && isRandOk && isNum) {
            for (var i = 0; i < n; i++) {
                var rand = getRand(min, max);
                if (checkArrIn(rand, arr)) {
                    i--
                } else {
                    arr.push(rand)
                }
            }
        }
        return arr;
    }
  • 相关阅读:
    二分查找
    二分排序
    How to use hdu?
    HGOI 20200721
    HGOI 20200720
    HGOI 20190719
    HGOI 20200716
    HGOI 20190714
    LCA 的一些扩展算法
    HGOI 20190711
  • 原文地址:https://www.cnblogs.com/SallyShan/p/11465093.html
Copyright © 2011-2022 走看看