Heim > Web-Frontend > js-Tutorial > Codewars – Du bist ein Quadrat!

Codewars – Du bist ein Quadrat!

Linda Hamilton
Freigeben: 2025-01-03 03:05:39
Original
676 Leute haben es durchsucht

Anreden.

Codewars - You

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.

Der nächste Teil dieser Serie ist „You're a Square!“. Sehen Sie, Ihre LEGO-Sucht ist ein wenig außer Kontrolle geraten und Sie programmieren jetzt als Ersatzdroge.

Codewars - You

Nein, dir geht es gut? Und Ihre nächste Aufgabe besteht aus Quadraten. Die Aufgabe lautet also: „Ist diese Zahl ein Quadrat?“. Wie gehen wir also damit um? Wie auch immer wir es wünschen. Wie bei jedem Codierungsproblem.

Lösen Sie es zuerst. Dann lösen Sie es richtig. Dann lösen Sie es richtig und schnell.

  1. Schritt 1: Fehler machen

Meine erste Ahnung führte mich zu folgendem:

var isSquare = function(n){
  let nIsSquare = false;
  if (n>=0) {
      nIsSquare = ( n ** 2 ) == 2 * ( (n - 1) ** 2 ) - ( (n-2) ** 2 ) + 2;
  }
  return nIsSquare;
}
Nach dem Login kopieren

Das ist falsch. Ich habe mich für entschieden n2 =2(n1 )2(n2)2 2n^2 = 2(n − 1)^2 − (n − 2)^2 2n2 =2(n−1) 2(n−2)2 2
Danke Wikipedia. Dies ist jedoch eine Formel zur Überprüfung von n^2. Ich brauche eine Formel, um n zu überprüfen.

  1. Schritt 2: Mach es richtigMACHE MEHR FEHLER

In einem anderen Wikipedia-Artikel gab es eine nette, kurze Möglichkeit, Quadratwurzeln zu berechnen: Exponentielle Identität.

Also korrigieren wir unseren vorherigen Code:

var isSquare = function(n){

  let nIsSquare = false;
  if (n>=0) {
     let sqrt = Math.E ** ( Math.log(n) / 2 );
     nIsSquare = Number.isInteger(sqrt);
  }

  return nIsSquare;
}
Nach dem Login kopieren

Annnnnnnnnnnnd:
Codewars - You

Oh, komm schon. Warum scheitert es? Oh. JavaScript macht seltsame Dinge mit Gleitkommazahlen. Es ist also nicht die Schuld des Codes. Rechts? Ich schätze, wir werden es nie erfahren. Trotzdem liebe ich dich, JS. Du schrulliger Bastard.

  1. Schritt 3: Machen Sie es richtig und schnell

Verwenden Sie einfach Math.sqrt():

var isSquare = function(n){
  let nIsSquare = false;
  if (n>=0) {
     nIsSquare = Number.isInteger(Math.sqrt(n));
  }
  return nIsSquare;
}
Nach dem Login kopieren

Nicht die beste, aber die einfachste Lösung. Macht den Job.

Tschüss. Wasser trinken???.

Zurück

Das obige ist der detaillierte Inhalt vonCodewars – Du bist ein Quadrat!. 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