javascript - 计算 n 和 m 之间所有偶数的总和
问题描述
我需要计算 和 之间的数字n
,m
但是出了点问题,我不知道是什么..
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>
解决方案
除非您被明确告知使用循环,否则您应该使用算术级数之和的公式。
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,而不是在每次迭代时检查奇偶校验。
推荐阅读
- php - 作为参数传递时防止PHP函数被立即调用的最佳方法?
- node.js - 在哪里挂钩在构建过程之前带来文件的函数
- php - 使用自签名证书连接到 dev magento soap api v1 - 版本错误
- python - 如何在 prefork celery 环境中正确使用 psycopg2?
- laravel - Laravel 中相同验证关键字的不同错误消息
- python - 询问关于其中列名更改的熊猫数据框
- reactjs - 如何在 React 中执行 jQuery 风格的串行动画
- javascript - Django Ajax 通信,Django 不识别为 Ajax(使用 request.is_ajax() )
- powershell - 如何 - 替换连续的特殊字符?
- javascript - mongodb/mongoose findOneandUpdate 如何获取索引和删除对象