Introducción
En este laboratorio, exploraremos cómo convertir un número entero a su representación en números romanos utilizando JavaScript. Utilizaremos una tabla de búsqueda para mapear los valores enteros a sus correspondientes números romanos, y luego utilizaremos el método reduce para iterar sobre los valores y construir la representación en números romanos del número entero de entrada. Al final de este laboratorio, tendrás una comprensión más profunda de cómo manipular matrices y cadenas en JavaScript para realizar tareas complejas.
Conversión de números enteros a números romanos
Para convertir un número entero a su representación en números romanos, sigue estos pasos:
Abre la Terminal/SSH y escribe
nodepara comenzar a practicar la codificación.La función
toRomanNumeral()acepta valores entre1y3999(ambos inclusive).Crea una tabla de búsqueda que contenga arreglos de dos valores en la forma de (valor romano, entero).
Utiliza
Array.prototype.reduce()para recorrer los valores enlookupy dividir repetidamentenumpor el valor.Utiliza
String.prototype.repeat()para agregar la representación en números romanos al acumulador.
Aquí está el código de la función 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;
}, "");
};
Puedes probar la función con estos ejemplos:
toRomanNumeral(3); // 'III'
toRomanNumeral(11); // 'XI'
toRomanNumeral(1998); // 'MCMXCVIII'
Resumen
¡Felicidades! Has completado el laboratorio de conversión de números enteros a números romanos. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.