首页 > 解决方案 > 计算 n 和 m 之间所有偶数的总和

问题描述

我需要计算 和 之间的数字nm但是出了点问题,我不知道是什么..

function even(){
  var n = document.getElementById("n").value;
  var m = document.getElementById("m").value;
  var s = 0 ;
  if(n<m){
    i = n;
    while(i<=n){
      n*(n+2)/4;
      i++;
      alert(n.value)
    }
  }else if(n>m);{
    i=m;
    S=n*(n+2)/4;
    i++
    alert(m.value)
  }			
}
<input type="text" id="n" > </br><br>
<input type="text" id="m" > </br><br>
<button onclick="even()">Click me !</button>

标签: javascript

解决方案


除非您被明确告知使用循环,否则您应该使用算术级数之和的公式。

function even() {
  let n1 = Number(document.getElementById("n").value);
  let n2 = Number(document.getElementById("m").value);
  if (n1 > n2) [n1,n2] = [n2,n1];
  n1 = 2*Math.ceil(n1/2);
  n2 = 2*Math.floor(n2/2);
  if (n1 > n2) return 0;
  return (n1 + n2) * ((n2 - n1) / 2 + 1) / 2;
}
<input type="text" id="n" > <br><br>
<input type="text" id="m" > <br><br>
<button onclick="alert(even())">Click me !</button>

即使您使用循环,您也应该考虑先将数字设为偶数,然后每次将循环变量增加 2,而不是在每次迭代时检查奇偶校验。


推荐阅读