倒数从100到数字(N),并分开偶数和奇数。在第一行显示偶数,在第二行显示奇数

问题描述 投票:0回答:3
<div id="counter">100</div>
  <script>

    function myFunction() {
  var person = prompt("Please enter One number (N) where (N) is a positive integer.", "");
  if (person != null) {
    document.getElementById("demo").innerHTML =
    "Hello " + person + "! How are you today?";
  }
}
function countdown() {
    var i = document.getElementById('counter');
    i.innerHTML = parseInt(i.innerHTML)-1;
    if (parseInt(i.innerHTML)==95) {
       clearInterval(timerId);
    }
}
var timerId = setInterval(function(){ countdown(); },1000);
  </script>
  <p id="demo"></p>

示例测试用例:

输入10

输出100 98 96 94 92

99 97 95 93 91

输入5输出100 98 96

99 97

javascript countdown
3个回答
0
投票

我制作了自己的脚本,该脚本从100-0开始递减计数,并根据其是奇还​​是偶将每个数字放入一个Array变量中。

这里是:

var even = [];
var odd = [];

var number = 100;

changeNumber();
function changeNumber() {
    document.getElementById("counter").innerText = number;
    if (checkParity(number) == "even") {
        console.log("even");
        even.push(number);
    } else {
        console.log("odd");
        odd.push(number);
    }
    if (number == 0) {
        console.log("[Finished]"); 
        console.log("Even numbers:");
        console.log(even);
        console.log("Odd numbers:");
        console.log(odd);
    } else {
        setTimeout(function () {
            number--;
            changeNumber();
        }, 100);
    }
}

function checkParity(n) {
    if (n % 2 == 0) {
        return "even"
    } else {
        return "odd"
    }
}
<div id="counter">100</div>

0
投票

我认为这是可能的解决方案,无需对原始代码进行很多更改:

    <div id="counter">100</div>
      <script>
    
    var input = prompt("Please enter One number (N) where (N) is a positive integer.", "");
    var half = parseInt(input / 2);
    
    function countdown() {
        if (input == 0) {
           clearInterval(timerId);
           return;
        }
        
        var i = document.getElementById('counter');
        if (input == half) {
          i.innerHTML = parseInt(i.innerHTML) + input * 2 - 1;
        }
        else {
          i.innerHTML = parseInt(i.innerHTML) - 2;
        }
    
        input--;
    }
    
    var timerId = setInterval(function(){ countdown(); }, 1000);
    
    
      </script>
      <p id="demo"></p>

基本上将它减少2,直到达到一半,然后回到起点-1,循环遍历奇数(或什至,如果计数器值最初是奇数)。


0
投票

我希望能有所帮助。

(function () {
   const input = prompt("Please enter One number (N) where (N) is a positive integer.", "");
   let count = 100;

   if (isNaN(input) || input < 1) return;

   const inerval = setInterval(() => {
       count--;

       if (count % 2 == 0) {
           console.log('This is even Numbers ' + count);
       } else {
           console.log('This is odd Numbers ' + count);
       }

       if (input == count) return clearInterval(inerval);
   }, 1000);

})();
© www.soinside.com 2019 - 2024. All rights reserved.