gpt4 book ai didi

javascript - 从 n 到 m 的偶数之和,无论 nm

转载 作者:行者123 更新时间:2023-11-28 04:43:57 26 4
gpt4 key购买 nike

我正在尝试计算来自 n 的数字总和至 m ,无论是否 n>mn<m .我只设法让它在 n<m 时工作.有人可以给我一个帮助/提示吗?

       function SumEvenN()
{
var n = getFirstNumber();
var m = getSecondNumber();

var s = 0;

if (n<m)
{
min = n;
max = m;
}
else if (m<n)
{
min = m;
max = n;
}

if (n>m)
{
[n, m] = [m, n]
}
for (var i = 2; i<=m; i++)
{
if (i % 2 == 0)
{
s += i;
}
}
alert(s);

}


function getFirstNumber()
{
var a = document.getElementById("first-number");
return parseInt(a.value);
}

function getSecondNumber()
{
var b = document.getElementById("second-number");
return parseInt(b.value);
}

最佳答案

尝试

function SumEvenN(n,m) {
if(n>m) [n, m] = [m, n]; // swap variables if n>m
n=n%2 ? n+1 : n; // if n is odd add 1 to it
m=m%2 ? m-1 : m; // if m is odd add -1 to it
let t=(m-n+2)/2; // number of even elements between n and m
return t*(n+m)/2; // use formula of arithmetic progression sum
}

function SumEvenN(n,m) {
if(n>m) [n, m] = [m, n]; // swap variables if n>m
n=n%2 ? n+1 : n; // if n is odd add 1 to it
m=m%2 ? m-1 : m; // if m is odd add -1 to it
let t=(m-n+2)/2; // number of even elements between n and m
return t*(n+m)/2; // use foruma of arithmetic progression sum
}

function calc() {
console.log(SumEvenN(+first.value, +second.value) );
}
<input id="first" type="number" value="9"/>
<input id="second" type="number" value="16"/>
<button id="btn" onclick="calc()">Calc</button>

关于javascript - 从 n 到 m 的偶数之和,无论 n<m 还是 n>m,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56227401/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com