javascript 如何检查给定的随机数不是降序排列的?

cu6pst1q  于 2023-01-29  发布在  Java
关注(0)|答案(2)|浏览(112)

我生成了一个4位随机数,其中随机数不应在descending order中。它不应像7654
代码:

function descendingOrder(n) {
   let num = n.toString();
      for (var i = 0; i <= num.length; i++) {
        if (num.substr(i) > num.substr(++i)) {
             alert('This pattern can't be used');
         }
         else {
             return parseInt(n);
         }
       }
}
descendingOrder(Math.floor(1000 + Math.random() * 9000));

这个代码只是比较第一个和第二个数字,并给出一个警报消息。有人能帮忙吗?
谢谢
我试过生成一个随机数,它不应该是降序排列的。但是,它不起作用。

khbbv19g

khbbv19g1#

1.如果您只想使用4位数字,最好将最大数字限制为9999。
1.你可以在第一个案例中,当下一个数字大于前一个数字时,中断迭代。

function descendingOrder(n) {
        let num = n.toString();
        var i = 0;
        while (i<=num.length) {
            if (num.substr(i) < num.substr(i+1)) {
                alert('This pattern can be used');
                return parseInt(n);
            } 
            i++;
        }
        alert('This pattern cannot be used');
    }
    descendingOrder(Math.floor(1000 + Math.random() * 8999));
ffx8fchx

ffx8fchx2#

你可以直接迭代每一对相邻的数字,如果任何一位数字小于下一位数字,那么它就不是降序排列。

function descendingOrder(n) {
   let num = n.toString();
   for (let i = 0; i < num.length - 1; i++) {
    if (num[i] < num[i + 1]) return false;
   }
   return true;
}
let n = Math.floor(1000 + Math.random() * 9000);
console.log(n);
if (descendingOrder(n)) console.log("This pattern can't be used");

相关问题