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

Codewars – Einsteigerserie #um of Numbers

Patricia Arquette
Freigeben: 2025-01-05 02:25:37
Original
921 Leute haben es durchsucht

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!
}
Nach dem Login kopieren
function getSum(a, b)
{
   let sum = (b ** 2 - a ** 2 + b + a ) / 2 ;
   return sum;
}
Nach dem Login kopieren

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)
Nach dem Login kopieren

(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;
  }
Nach dem Login kopieren

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;
}
Nach dem Login kopieren

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!

Quelle:dev.to
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage