首页 >web前端 >js教程 >Codewars - 初学者系列#um of Numbers

Codewars - 初学者系列#um of Numbers

Patricia Arquette
Patricia Arquette原创
2025-01-05 02:25:37929浏览

问候。

Codewars - Beginner Series #um of Numbers

我在本系列中发布了 Codewars 挑战和我的思考过程。我尽可能使用 JS 和 Node 18。只是为了清楚起见,我正在合理使用它们。

所以,本系列的下一个是数字之和。在这个具体问题中,更多的是数学而不是编码。看,您需要计算面积。例如,在此图中,我们显示 -5 到 4 之间的所有值:

Codewars - Beginner Series #um of Numbers

如果您愿意,您可以使用集成,但有一个更简单的途径。由于我们处理的是线性函数,因此我们可以搜索中位数并乘以范围:

sum =median*r ange总和= 中位数 * 范围总和=中位数*范围

sum =bb a2* (ba 1)sum = b - frac{b-a}{2} * (b - a 1)sum=b− 2b−a*(b−a 1)

sum= b2a2 b a2sum = frac{b^2 - a^2乙a}{2}sum= 2b2a 2 b a

所以我们只需要在代码中插入该方程即可。它是这样开始的:

function getSum(a, b)
{
   //Good luck!
}
function getSum(a, b)
{
   let sum = (b ** 2 - a ** 2 + b + a ) / 2 ;
   return sum;
}

我们对其进行测试并且:

Codewars - Beginner Series #um of Numbers

但是为什么呢?我知道方程已正确简化,所以...哦。这就是问题所在:

getSum(a, b)

(a,b) 完全按照这个顺序。如果输入为 (-5,4),则有效,但如果输入为 (4,-5),则无效。使固定?您可以针对这两种情况编写“if”语句。不过我不会那样做。我会这样做:

if (a > b){
    let c = a;
    a = b;
    b = c;
  }

因此,我们将所有内容放在一起:

function getSum(a, b)
{
  if (a > b){
    let c = a;
    a = b;
    b = c;
  }
  let sum = (b ** 2 - a ** 2 + b + a ) / 2 ;
  return sum;
}

还算不错,易于阅读。

赛亚。喝水???.

上一页

以上是Codewars - 初学者系列#um of Numbers的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn