Heim >Web-Frontend >js-Tutorial >Codewars – Einsteigerserie #um of Numbers

Codewars – Einsteigerserie #um of Numbers

Patricia Arquette
Patricia ArquetteOriginal
2025-01-05 02:25:37986Durchsuche

Anreden.

Codewars - Beginner Series #um of Numbers

Ich poste in dieser Serie Codewars-Herausforderungen und meinen Denkprozess. Ich verwende wann immer möglich JS und Node 18. Nur der Klarheit halber nutze ich sie fair.

Als nächstes in dieser Reihe geht es um die Summe der Zahlen. Bei diesem speziellen Problem geht es mehr um Mathematik als um Codierung. Sehen Sie, Sie müssen eine Fläche berechnen. In dieser Grafik zeigen wir beispielsweise alle Werte zwischen -5 und 4:

Codewars - Beginner Series #um of Numbers

Sie können die Integration verwenden, wenn Sie dies wünschen, aber es gibt einen einfacheren Weg. Da es sich um lineare Funktionen handelt, können wir nach dem Median suchen und für den Bereich multiplizieren:

sum=m edianran geSumme = Median * BereichSumme=Median∗Bereich

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

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

Wir müssen also nur diese Gleichung in den Code einfügen. Es beginnt so:

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

Wir testen es und:

Codewars - Beginner Series #um of Numbers

Aber warum? Ich weiß, dass die Gleichung richtig vereinfacht ist, also... Oh. Das ist das Problem:

getSum(a, b)

(a,b) in genau dieser Reihenfolge. Es funktioniert, wenn die Eingabe (-5,4) ist, aber nicht, wenn sie (4,-5) ist. Fix? Sie könnten für beide Situationen eine „if“-Anweisung codieren. So werde ich es allerdings nicht machen. Ich mache das:

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

Und so haben wir alles zusammengestellt:

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;
}

Einigermaßen ordentlich, leicht zu lesen.

Cya. Wasser trinken???.

Zurück

Das obige ist der detaillierte Inhalt vonCodewars – Einsteigerserie #um of Numbers. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn