Conversion d'entiers en chiffres romains

Beginner

This tutorial is from open-source community. Access the source code

Introduction

Dans ce laboratoire (lab), nous allons explorer comment convertir un entier en sa représentation en chiffres romains à l'aide de JavaScript. Nous utiliserons une table de correspondance (lookup table) pour associer les valeurs entières à leurs chiffres romains correspondants, puis nous utiliserons la méthode reduce pour parcourir les valeurs et construire la représentation en chiffres romains de l'entier d'entrée. À la fin de ce laboratoire, vous aurez une compréhension plus approfondie de la manipulation des tableaux et des chaînes de caractères en JavaScript pour effectuer des tâches complexes.

Conversion d'un entier en chiffres romains

Pour convertir un entier en sa représentation en chiffres romains, suivez ces étapes :

  1. Ouvrez le Terminal/SSH et tapez node pour commencer à pratiquer la programmation.

  2. La fonction toRomanNumeral() accepte les valeurs comprises entre 1 et 3999 (les deux inclus).

  3. Créez une table de correspondance (lookup table) contenant des tableaux à 2 valeurs sous la forme (valeur romaine, entier).

  4. Utilisez Array.prototype.reduce() pour parcourir les valeurs dans lookup et diviser répétitivement num par la valeur.

  5. Utilisez String.prototype.repeat() pour ajouter la représentation en chiffres romains à l'accumulateur.

Voici le code de la fonction toRomanNumeral() :

const toRomanNumeral = (num) => {
  const lookup = [
    ["M", 1000],
    ["CM", 900],
    ["D", 500],
    ["CD", 400],
    ["C", 100],
    ["XC", 90],
    ["L", 50],
    ["XL", 40],
    ["X", 10],
    ["IX", 9],
    ["V", 5],
    ["IV", 4],
    ["I", 1]
  ];
  return lookup.reduce((acc, [k, v]) => {
    acc += k.repeat(Math.floor(num / v));
    num = num % v;
    return acc;
  }, "");
};

Vous pouvez tester la fonction avec ces exemples :

toRomanNumeral(3); // 'III'
toRomanNumeral(11); // 'XI'
toRomanNumeral(1998); // 'MCMXCVIII'

Résumé

Félicitations! Vous avez terminé le laboratoire (lab) sur la conversion d'entiers en chiffres romains. Vous pouvez pratiquer davantage de laboratoires sur LabEx pour améliorer vos compétences.