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.
Das Projektumfeld einrichten
In diesem Schritt wirst du die Projektumgebung einrichten und die erforderlichen Dateien für das Projekt "Addition großer Ganzzahlen" erstellen.
Öffne deinen bevorzugten Code-Editor und navigiere zum Verzeichnis
/home/labex/project.Erstelle in dem Verzeichnis
/home/labex/projecteine neue Datei namensaddBigNum.js.Füge in der Datei
addBigNum.jsfolgenden 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.
Die Additionslogik implementieren
In diesem Schritt wirst du die Logik implementieren, um zwei große Zahlen, die als Zeichenketten dargestellt werden, zu addieren.
- In der
addBigNum-Funktion beginne mit der Umwandlung der Eingabezeichenkettennum1undnum2in 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
- Stelle sicher, dass die Arrays
digits1unddigits2die 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);
}
- Initialisiere ein
result-Array, um die Ziffern der endgültigen Summe zu speichern, und einecarry-Variable, um den Überlaufwert während der Addition zu verfolgen.
const result = [];
let carry = 0; // Überlaufwert für die Addition
- 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
}
- Wenn ein Rest-Überlaufwert vorhanden ist, füge ihn am Anfang des
result-Arrays hinzu.
if (carry > 0) {
result.unshift(carry);
}
- 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.
- In deinem Code-Editor füge am Ende der Datei
addBigNum.jsfolgenden 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
- Speichere die Datei
addBigNum.jsund 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.
Zusammenfassung
Herzlichen Glückwunsch! Du hast dieses Projekt abgeschlossen. Du kannst in LabEx weitere Übungen absolvieren, um deine Fähigkeiten zu verbessern.



