首頁 > web前端 > js教程 > Codewars - 初學者係列#um of Numbers

Codewars - 初學者係列#um of Numbers

Patricia Arquette
發布: 2025-01-05 02:25:37
原創
919 人瀏覽過

問候。

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 1 1 sum = b - frac{b-a}{2} * (b - a 1)sum=b− 2

b−a*(b−a 1)a 1)a 1)a 1) sum=m=b2a2a2a2a b a2sum = frac{b^2 - a^2乙a}{2}sum=
2b2−a 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中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板