ホームページ >ウェブフロントエンド >jsチュートリアル >Codewars - 初心者向けシリーズ #um の数字

Codewars - 初心者向けシリーズ #um の数字

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-05 02:25:37956ブラウズ

ご挨拶

Codewars - Beginner Series #um of Numbers

このシリーズでは、Codewars の課題と私の思考プロセスを投稿しています。私は可能な限り JS と Node 18 を使用しています。明確にするために、私はそれらを公正に使用しています。

それでは、このシリーズの次は Sum of Numbers です。この特定の問題では、コーディングというよりは数学です。面積を計算する必要があります。たとえば、このグラフでは、-5 から 4 までのすべての値が表示されます。

Codewars - Beginner Series #um of Numbers

必要に応じて統合を使用できますが、より簡単な方法があります。線形関数を扱っているため、中央値を検索し、範囲を乗算できます。

sum =medianr 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 b 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 の数字の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。