Große Ganzzahlen addieren

JavaJavaBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Projekt lernst du, wie du eine Funktion implementierst, die zwei große Ganzzahlen, die als Zeichenketten dargestellt werden, addieren kann. Dies ist ein häufiges Problem in realen Szenarien, bei dem der integrierte JavaScript-Zahlen-Datentyp bei der Darstellung und Ausführung von arithmetischen Operationen mit extrem großen Zahlen Einschränkungen hat.

Aufgaben

In diesem Projekt wirst du lernen:

  • Die Projektumgebung einzurichten und die erforderlichen Dateien zu erstellen.
  • Die Logik zur Addition von zwei großen Zahlen, die als Zeichenketten dargestellt werden, zu implementieren.
  • Die addBigNum-Funktion mit den bereitgestellten Beispielen zu testen.
  • Möglichkeiten zur Optimierung der Lösung zu erkunden (optional).

Ziele

In diesem Projekt wirst du lernen:

  • Wie man mit großen Zahlen in JavaScript umgeht, indem man sie als Zeichenketten darstellt.
  • Techniken zum Umgang mit Grenzfällen und zur Gewährleistung der Korrektheit der Additionsoperation.
  • Strategien zur Optimierung der Leistung der addBigNum-Funktion.
  • Beste Praktiken beim Schreiben von wartbarem und lesbarem Code.

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/BasicSyntaxGroup(["Basic Syntax"]) java(("Java")) -.-> java/StringManipulationGroup(["String Manipulation"]) java(("Java")) -.-> java/ProgrammingTechniquesGroup(["Programming Techniques"]) java(("Java")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["Object-Oriented and Advanced Concepts"]) java(("Java")) -.-> java/DataStructuresGroup(["Data Structures"]) java/BasicSyntaxGroup -.-> java/data_types("Data Types") java/BasicSyntaxGroup -.-> java/operators("Operators") java/BasicSyntaxGroup -.-> java/type_casting("Type Casting") java/StringManipulationGroup -.-> java/strings("Strings") java/DataStructuresGroup -.-> java/arrays("Arrays") java/ProgrammingTechniquesGroup -.-> java/method_overloading("Method Overloading") java/ProgrammingTechniquesGroup -.-> java/method_overriding("Method Overriding") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/exceptions("Exceptions") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/generics("Generics") subgraph Lab Skills java/data_types -.-> lab-299822{{"Große Ganzzahlen addieren"}} java/operators -.-> lab-299822{{"Große Ganzzahlen addieren"}} java/type_casting -.-> lab-299822{{"Große Ganzzahlen addieren"}} java/strings -.-> lab-299822{{"Große Ganzzahlen addieren"}} java/arrays -.-> lab-299822{{"Große Ganzzahlen addieren"}} java/method_overloading -.-> lab-299822{{"Große Ganzzahlen addieren"}} java/method_overriding -.-> lab-299822{{"Große Ganzzahlen addieren"}} java/exceptions -.-> lab-299822{{"Große Ganzzahlen addieren"}} java/generics -.-> lab-299822{{"Große Ganzzahlen addieren"}} end

Projektumgebung einrichten

In diesem Schritt wirst du die Projektumgebung einrichten und die erforderlichen Dateien für das Projekt "Addition großer Ganzzahlen" erstellen.

  1. Öffne deinen bevorzugten Code-Editor und navigiere zum Verzeichnis /home/labex/project.

  2. Erstelle in dem Verzeichnis /home/labex/project eine neue Datei namens addBigNum.js.

  3. Füge in der Datei addBigNum.js folgenden Code als Ausgangspunkt hinzu:

/*
  Addiert zwei große Zahlen, die als Zeichenketten dargestellt werden, und gibt die Summe als Zeichenkette zurück.

  Parameter:
  - num1: Eine Zeichenkette, die die erste große Zahl darstellt.
  - num2: Eine Zeichenkette, die die zweite große Zahl darstellt.

  Rückgabe:
  - Eine Zeichenkette, die die Summe der beiden eingegebenen Zahlen darstellt.
*/

function addBigNum(num1, num2) {
  // Deine Implementierung hier
}

module.exports = addBigNum;

Dieser Code definiert die addBigNum-Funktion und exportiert sie, wie es die Projektanweisungen erfordern.

Additionslogik implementieren

In diesem Schritt wirst du die Logik implementieren, um zwei große Zahlen, die als Zeichenketten dargestellt werden, zu addieren.

  1. In der addBigNum-Funktion beginne mit der Umwandlung der Eingabezeichenketten num1 und num2 in Arrays von Ziffern.
const digits1 = num1.split("").map(Number); // Konvertiere die num1-Zeichenkette in ein Array von Ziffern
const digits2 = num2.split("").map(Number); // Konvertiere die num2-Zeichenkette in ein Array von Ziffern
  1. Stelle sicher, dass die Arrays digits1 und digits2 die gleiche Länge haben, indem du führende Nullen hinzufügst, wenn erforderlich.
while (digits1.length < digits2.length) {
  digits1.unshift(0);
}
while (digits2.length < digits1.length) {
  digits2.unshift(0);
}
  1. Initialisiere ein result-Array, um die Ziffern der endgültigen Summe zu speichern, und eine carry-Variable, um den Überlaufwert während der Addition zu verfolgen.
const result = [];
let carry = 0; // Überlaufwert für die Addition
  1. Iteriere durch die Ziffern von rechts nach links, führe die Addition durch und aktualisiere den carry-Wert.
for (let i = digits1.length - 1; i >= 0; i--) {
  const sum = digits1[i] + digits2[i] + carry;
  const digit = sum % 10; // Aktueller Ziffernwert
  carry = Math.floor(sum / 10); // Berechne den Überlauf
  result.unshift(digit); // Füge die aktuelle Ziffer am Anfang des result-Arrays hinzu
}
  1. Wenn ein Rest-Überlaufwert vorhanden ist, füge ihn am Anfang des result-Arrays hinzu.
if (carry > 0) {
  result.unshift(carry);
}
  1. Konvertiere das result-Array in eine Zeichenkette und gebe sie als endgültige Summe zurück.
const sumStr = result.join(""); // Konvertiere das result-Array in eine Zeichenkette
return sumStr;

Die addBigNum-Funktion testen

In diesem Schritt wirst du die addBigNum-Funktion mit den bereitgestellten Beispielen testen.

  1. In deinem Code-Editor füge am Ende der Datei addBigNum.js folgenden Code hinzu:
// Teste die addBigNum-Funktion
console.log(addBigNum("0", "0")); // Ausgabe: 0
console.log(addBigNum("99", "1")); // Ausgabe: 100
console.log(addBigNum("11", "123")); // Ausgabe: 134
console.log(addBigNum("9007199254740992", "1")); // Ausgabe: 9007199254740993
  1. Speichere die Datei addBigNum.js und führe das Skript in deinem Terminal aus:
node /home/labex/project/addBigNum.js

Die Ausgabe sollte den erwarteten Ergebnissen in den Projektanweisungen entsprechen.

Die Lösung verfeinern und optimieren (optional)

In diesem optionalen Schritt kannst du Möglichkeiten zur weiteren Optimierung der addBigNum-Funktion erkunden. Einige potenzielle Verbesserungen umfassen:

  • Die Behandlung von negativen Zahlen oder Null als Eingabe.
  • Die Verbesserung der Leistung bei extrem großen Zahlen.
  • Die Hinzufügung von Fehlerbehandlung für ungültige Eingaben.
  • Die Verbesserung der Code-Lesbarkeit und Wartbarkeit.

Fühle dich frei, mit dem Code zu experimentieren und alle notwendigen Änderungen vorzunehmen, um die gesamte Lösung zu verbessern.

Herzlichen Glückwunsch! Du hast das Projekt "Addition großer Ganzzahlen" abgeschlossen. Wenn du Fragen hast oder weitere Hilfe benötigst, zögere nicht, zu fragen.

✨ Lösung prüfen und üben

Zusammenfassung

Herzlichen Glückwunsch! Du hast dieses Projekt abgeschlossen. Du kannst in LabEx weitere Übungen absolvieren, um deine Fähigkeiten zu verbessern.