Ajout de grands entiers

JavaBeginner
Pratiquer maintenant

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 addBigNum avec 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".

  1. Ouvrez votre éditeur de code préféré et accédez au répertoire /home/labex/project.

  2. Créez un nouveau fichier nommé addBigNum.js dans le répertoire /home/labex/project.

  3. 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.

  1. Dans la fonction addBigNum, commencez par convertir les chaînes d'entrée num1 et num2 en 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
  1. Assurez-vous que les tableaux digits1 et digits2 ont 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);
}
  1. Initialisez un tableau result pour stocker les chiffres de la somme finale, et une variable carry pour suivre la valeur de retenue lors de l'addition.
const result = [];
let carry = 0; // Valeur de retenue pour l'addition
  1. 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
}
  1. Si une valeur de retenue restante existe, ajoutez-la au début du tableau result.
if (carry > 0) {
  result.unshift(carry);
}
  1. Convertissez le tableau result en 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.

  1. 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
  1. Enregistrez le fichier addBigNum.js et 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.

✨ Vérifier la solution et pratiquer✨ Vérifier la solution et pratiquer✨ Vérifier la solution et pratiquer✨ Vérifier la solution et pratiquer