--- title: Roman Numeral Converter localeTitle: Convertidor de números romanos --- ![:triangular_flag_on_post:](https://forum.freecodecamp.com/images/emoji/emoji_one/triangular_flag_on_post.png?v=3 ": triangular_flag_on_post:") Recuerda usar **`Read-Search-Ask`** si te atascas. Tratar de emparejar el programa ![:busts_in_silhouette:](https://forum.freecodecamp.com/images/emoji/emoji_one/busts_in_silhouette.png?v=3 ": busts_in_silhouette:") y escribe tu propio código ![:pencil:](https://forum.freecodecamp.com/images/emoji/emoji_one/pencil.png?v=3 ":lápiz:") ### ![:checkered_flag:](https://forum.freecodecamp.com/images/emoji/emoji_one/checkered_flag.png?v=3 ":bandera a cuadros:") Explicación del problema: Creará un programa que convierte un número entero en un número romano. #### Enlaces relevantes * [Números romanos](http://www.mathsisfun.com/roman-numerals.html) * [Array.splice ()](http://forum.freecodecamp.com/t/javascript-array-prototype-splice/14307) * [Array.indexOf ()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf) * [Array.join ()](http://forum.freecodecamp.com/t/javascript-array-prototype-join/14292) ## ![:speech_balloon:](https://forum.freecodecamp.com/images/emoji/emoji_one/speech_balloon.png?v=3 ": speech_balloon:") Sugerencia: 1 Será muy útil crear dos matrices, una con los números romanos y otra con el equivalente decimal para las nuevas formas. > _intenta resolver el problema ahora_ ## ![:speech_balloon:](https://forum.freecodecamp.com/images/emoji/emoji_one/speech_balloon.png?v=3 ": speech_balloon:") Sugerencia: 2 Si agrega los números a las matrices que van antes de que se introduzca la nueva letra, como los valores de 4, 9 y 40, le ahorrará mucho código. > _intenta resolver el problema ahora_ ## ![:speech_balloon:](https://forum.freecodecamp.com/images/emoji/emoji_one/speech_balloon.png?v=3 ": speech_balloon:") Sugerencia: 3 No puedes tener más de tres números romanos consecutivos juntos. > _intenta resolver el problema ahora_ ## ¡Alerta de spoiler! ![señal de advertencia](//discourse-user-assets.s3.amazonaws.com/original/2X/2/2d6c412a50797771301e7ceabd554cef4edcd74d.gif) **¡Solución por delante!** ## ![:beginner:](https://forum.freecodecamp.com/images/emoji/emoji_one/beginner.png?v=3 ":principiante:") Solución de código básico: ``` var convertToRoman = function(num) { var decimalValue = [ 1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1 ]; var romanNumeral = [ 'M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV', 'I' ]; var romanized = ''; for (var index = 0; index < decimalValue.length; index++) { while (decimalValue[index] <= num) { romanized += romanNumeral[index]; num -= decimalValue[index]; } } return romanized; } // test here convertToRoman(36); ``` ![:rocket:](https://forum.freecodecamp.com/images/emoji/emoji_one/rocket.png?v=3 ":cohete:") [Ejecutar código](https://repl.it/CLmf/0) ### Explicación del código: * Comenzamos creando dos matrices con conversión predeterminada con índices coincidentes. Estos se llaman `decimalValue` y `romanNumeral` . También creamos una variable de cadena vacía, `romanized` , que albergará el número romano final. * Usando un bucle for, hacemos un bucle a través de las indicaciones de la matriz `decimalValue` . Continuamos en bucle hasta que el valor en el `index` actual se ajuste a `num` . * A continuación, agregamos el número romano y disminuimos `num` por el equivalente decimal. * Finalmente, devolvemos el valor de `romanized` . #### Enlaces relevantes * [Para loops](http://forum.freecodecamp.com/t/javascript-for-loop/14666) * Mientras bucles ## ![:sunflower:](https://forum.freecodecamp.com/images/emoji/emoji_one/sunflower.png?v=3 ":girasol:") Solución de código intermedio: ``` function convertToRoman(num) { var romans = ["I", "V", "X", "L", "C", "D", "M"], ints = [], romanNumber = [], numeral = ""; while (num) { ints.push(num % 10); num = Math.floor(num/10); } for (i=0; i Ver ![:point_right:](https://forum.freecodecamp.com/images/emoji/emoji_one/point_right.png?v=3 ": point_right:") [**`Wiki Challenge Solution Template`**](http://forum.freecodecamp.com/t/algorithm-article-template/14272) para referencia.