Introduction
Dans ce projet, vous allez apprendre à implémenter une fonction qui peut additionner deux grands entiers représentés sous forme de chaînes de caractères. Il s'agit d'un problème courant rencontré dans les scénarios du monde réel, où le type de données numérique JavaScript intégré présente des limites pour représenter et effectuer des opérations arithmétiques sur des nombres extrêmement grands.
Tâches
Dans ce projet, vous allez apprendre à :
- Configurer l'environnement du projet et créer les fichiers nécessaires.
- Implémenter la logique pour additionner deux grands nombres représentés sous forme de chaînes de caractères.
- Tester la fonction
addBigNumavec les exemples fournis. - Explorer des façons d'optimiser la solution (optionnel).
Réalisations
Dans ce projet, vous allez apprendre :
- Comment travailler avec de grands nombres en JavaScript en les représentant sous forme de chaînes de caractères.
- Des techniques pour gérer les cas limites et assurer la correction de l'opération d'addition.
- Des stratégies pour optimiser les performances de la fonction
addBigNum. - Les meilleures pratiques pour écrire du code maintenable et lisible.
Configurer l'environnement du projet
Dans cette étape, vous allez configurer l'environnement du projet et créer les fichiers nécessaires pour le projet "Ajout de grands entiers".
Ouvrez votre éditeur de code préféré et accédez au répertoire
/home/labex/project.Créez un nouveau fichier nommé
addBigNum.jsdans le répertoire/home/labex/project.Dans le fichier
addBigNum.js, ajoutez le code suivant comme point de départ :
/*
Ajoute deux grands nombres représentés sous forme de chaînes de caractères et renvoie la somme sous forme de chaîne de caractères.
Paramètres :
- num1 : Une chaîne de caractères représentant le premier grand nombre.
- num2 : Une chaîne de caractères représentant le second grand nombre.
Renvoie :
- Une chaîne de caractères représentant la somme des deux nombres d'entrée.
*/
function addBigNum(num1, num2) {
// Votre implémentation ici
}
module.exports = addBigNum;
Ce code définit la fonction addBigNum et l'exporte, comme requis par les instructions du projet.
Implémenter la logique d'addition
Dans cette étape, vous allez implémenter la logique pour additionner deux grands nombres représentés sous forme de chaînes de caractères.
- Dans la fonction
addBigNum, commencez par convertir les chaînes d'entréenum1etnum2en tableaux de chiffres.
const digits1 = num1.split("").map(Number); // Convertit la chaîne num1 en un tableau de chiffres
const digits2 = num2.split("").map(Number); // Convertit la chaîne num2 en un tableau de chiffres
- Assurez-vous que les tableaux
digits1etdigits2ont la même longueur en ajoutant des zéros initiaux si nécessaire.
while (digits1.length < digits2.length) {
digits1.unshift(0);
}
while (digits2.length < digits1.length) {
digits2.unshift(0);
}
- Initialisez un tableau
resultpour stocker les chiffres de la somme finale, et une variablecarrypour suivre la valeur de retenue lors de l'addition.
const result = [];
let carry = 0; // Valeur de retenue pour l'addition
- Itérez sur les chiffres de droite à gauche, effectuez l'addition et mettez à jour la valeur de
carry.
for (let i = digits1.length - 1; i >= 0; i--) {
const sum = digits1[i] + digits2[i] + carry;
const digit = sum % 10; // Valeur du chiffre actuel
carry = Math.floor(sum / 10); // Calcule la retenue
result.unshift(digit); // Ajoute le chiffre actuel au début du tableau result
}
- Si une valeur de retenue restante existe, ajoutez-la au début du tableau
result.
if (carry > 0) {
result.unshift(carry);
}
- Convertissez le tableau
resulten chaîne de caractères et renvoyez-la comme somme finale.
const sumStr = result.join(""); // Convertit le tableau result en une chaîne de caractères
return sumStr;
Tester la fonction addBigNum
Dans cette étape, vous allez tester la fonction addBigNum avec les exemples fournis.
- Dans votre éditeur de code, ajoutez le code suivant à la fin du fichier
addBigNum.js:
// Test the addBigNum function
console.log(addBigNum("0", "0")); // Sortie : 0
console.log(addBigNum("99", "1")); // Sortie : 100
console.log(addBigNum("11", "123")); // Sortie : 134
console.log(addBigNum("9007199254740992", "1")); // Sortie : 9007199254740993
- Enregistrez le fichier
addBigNum.jset exécutez le script dans votre terminal :
node /home/labex/project/addBigNum.js
La sortie devrait correspondre aux résultats attendus dans les instructions du projet.
Afinir et optimiser la solution (optionnel)
Dans cette étape optionnelle, vous pouvez explorer des façons d'optimiser davantage la fonction addBigNum. Certains améliorations possibles incluent :
- Gérer les nombres négatifs ou zéro en entrée.
- Améliorer les performances pour les nombres extrêmement grands.
- Ajouter une gestion d'erreur pour les entrées invalides.
- Améliorer la lisibilité et la maintenabilité du code.
N'hésitez pas à expérimenter avec le code et à apporter les modifications nécessaires pour améliorer la solution globale.
Félicitations! Vous avez terminé le projet "Ajout de grands entiers". Si vous avez des questions ou avez besoin d'aide supplémentaire, n'hésitez pas à demander.
Résumé
Félicitations! Vous avez terminé ce projet. Vous pouvez pratiquer plus de laboratoires sur LabEx pour améliorer vos compétences.



