2021-02-06 04:42:36 +00:00
|
|
|
---
|
|
|
|
id: a7f4d8f2483413a6ce226cac
|
2021-03-23 08:41:00 -06:00
|
|
|
title: Conversor de números romanos
|
2021-02-06 04:42:36 +00:00
|
|
|
challengeType: 5
|
|
|
|
forumTopicId: 16044
|
|
|
|
dashedName: roman-numeral-converter
|
|
|
|
---
|
|
|
|
|
|
|
|
# --description--
|
|
|
|
|
2021-03-23 08:41:00 -06:00
|
|
|
Convierte el número proporcionado en un número romano.
|
2021-02-06 04:42:36 +00:00
|
|
|
|
2021-03-23 08:41:00 -06:00
|
|
|
Todos los [números romanos](http://www.mathsisfun.com/roman-numerals.html) deben proporcionarse en mayusculas.
|
2021-02-06 04:42:36 +00:00
|
|
|
|
|
|
|
# --hints--
|
|
|
|
|
2021-03-23 08:41:00 -06:00
|
|
|
`convertToRoman(2)` debe devolver la cadena `II`.
|
2021-02-06 04:42:36 +00:00
|
|
|
|
|
|
|
```js
|
|
|
|
assert.deepEqual(convertToRoman(2), 'II');
|
|
|
|
```
|
|
|
|
|
2021-03-23 08:41:00 -06:00
|
|
|
`convertToRoman(3)` debe devolver la cadena `III`.
|
2021-02-06 04:42:36 +00:00
|
|
|
|
|
|
|
```js
|
|
|
|
assert.deepEqual(convertToRoman(3), 'III');
|
|
|
|
```
|
|
|
|
|
2021-03-23 08:41:00 -06:00
|
|
|
`convertToRoman(4)` debe devolver la cadena `IV`.
|
2021-02-06 04:42:36 +00:00
|
|
|
|
|
|
|
```js
|
|
|
|
assert.deepEqual(convertToRoman(4), 'IV');
|
|
|
|
```
|
|
|
|
|
2021-03-23 08:41:00 -06:00
|
|
|
`convertToRoman(5)` debe devolver la cadena `V`.
|
2021-02-06 04:42:36 +00:00
|
|
|
|
|
|
|
```js
|
|
|
|
assert.deepEqual(convertToRoman(5), 'V');
|
|
|
|
```
|
|
|
|
|
2021-03-23 08:41:00 -06:00
|
|
|
`convertToRoman(9)` debe devolver la cadena `IX`.
|
2021-02-06 04:42:36 +00:00
|
|
|
|
|
|
|
```js
|
|
|
|
assert.deepEqual(convertToRoman(9), 'IX');
|
|
|
|
```
|
|
|
|
|
2021-03-23 08:41:00 -06:00
|
|
|
`convertToRoman(12)` debe devolver la cadena `XII`.
|
2021-02-06 04:42:36 +00:00
|
|
|
|
|
|
|
```js
|
|
|
|
assert.deepEqual(convertToRoman(12), 'XII');
|
|
|
|
```
|
|
|
|
|
2021-03-23 08:41:00 -06:00
|
|
|
`convertToRoman(16)` debe devolver la cadena `XVI`.
|
2021-02-06 04:42:36 +00:00
|
|
|
|
|
|
|
```js
|
|
|
|
assert.deepEqual(convertToRoman(16), 'XVI');
|
|
|
|
```
|
|
|
|
|
2021-03-23 08:41:00 -06:00
|
|
|
`convertToRoman(29)` debe devolver la cadena `XXIX`.
|
2021-02-06 04:42:36 +00:00
|
|
|
|
|
|
|
```js
|
|
|
|
assert.deepEqual(convertToRoman(29), 'XXIX');
|
|
|
|
```
|
|
|
|
|
2021-03-23 08:41:00 -06:00
|
|
|
`convertToRoman(44)` debe devolver la cadena `XLIV`.
|
2021-02-06 04:42:36 +00:00
|
|
|
|
|
|
|
```js
|
|
|
|
assert.deepEqual(convertToRoman(44), 'XLIV');
|
|
|
|
```
|
|
|
|
|
2021-03-23 08:41:00 -06:00
|
|
|
`convertToRoman(45)` debe devolver la cadena `XLV`.
|
2021-02-06 04:42:36 +00:00
|
|
|
|
|
|
|
```js
|
|
|
|
assert.deepEqual(convertToRoman(45), 'XLV');
|
|
|
|
```
|
|
|
|
|
2021-03-23 08:41:00 -06:00
|
|
|
`convertToRoman(68)` debe devolver la cadena `LXVIII`
|
2021-02-06 04:42:36 +00:00
|
|
|
|
|
|
|
```js
|
|
|
|
assert.deepEqual(convertToRoman(68), 'LXVIII');
|
|
|
|
```
|
|
|
|
|
2021-03-23 08:41:00 -06:00
|
|
|
`convertToRoman(83)` debe devolver la cadena `LXXXIII`
|
2021-02-06 04:42:36 +00:00
|
|
|
|
|
|
|
```js
|
|
|
|
assert.deepEqual(convertToRoman(83), 'LXXXIII');
|
|
|
|
```
|
|
|
|
|
2021-03-23 08:41:00 -06:00
|
|
|
`convertToRoman(97)` debe devolver la cadena `XCVII`
|
2021-02-06 04:42:36 +00:00
|
|
|
|
|
|
|
```js
|
|
|
|
assert.deepEqual(convertToRoman(97), 'XCVII');
|
|
|
|
```
|
|
|
|
|
2021-03-23 08:41:00 -06:00
|
|
|
`convertToRoman(99)` debe devolver la cadena `XCIX`
|
2021-02-06 04:42:36 +00:00
|
|
|
|
|
|
|
```js
|
|
|
|
assert.deepEqual(convertToRoman(99), 'XCIX');
|
|
|
|
```
|
|
|
|
|
2021-03-23 08:41:00 -06:00
|
|
|
`convertToRoman(400)` debe devolver la cadena `CD`
|
2021-02-06 04:42:36 +00:00
|
|
|
|
|
|
|
```js
|
|
|
|
assert.deepEqual(convertToRoman(400), 'CD');
|
|
|
|
```
|
|
|
|
|
2021-03-23 08:41:00 -06:00
|
|
|
`convertToRoman(500)` debe devolver la cadena `D`
|
2021-02-06 04:42:36 +00:00
|
|
|
|
|
|
|
```js
|
|
|
|
assert.deepEqual(convertToRoman(500), 'D');
|
|
|
|
```
|
|
|
|
|
2021-03-23 08:41:00 -06:00
|
|
|
`convertToRoman(501)` debe devolver la cadena `DI`
|
2021-02-06 04:42:36 +00:00
|
|
|
|
|
|
|
```js
|
|
|
|
assert.deepEqual(convertToRoman(501), 'DI');
|
|
|
|
```
|
|
|
|
|
2021-03-23 08:41:00 -06:00
|
|
|
`convertToRoman(649)` debe devolver la cadena `DCXLIX`
|
2021-02-06 04:42:36 +00:00
|
|
|
|
|
|
|
```js
|
|
|
|
assert.deepEqual(convertToRoman(649), 'DCXLIX');
|
|
|
|
```
|
|
|
|
|
2021-03-23 08:41:00 -06:00
|
|
|
`convertToRoman(798)` debe devolver la cadena `DCCXCVIII`
|
2021-02-06 04:42:36 +00:00
|
|
|
|
|
|
|
```js
|
|
|
|
assert.deepEqual(convertToRoman(798), 'DCCXCVIII');
|
|
|
|
```
|
|
|
|
|
2021-03-23 08:41:00 -06:00
|
|
|
`convertToRoman(891)` debe devolver la cadena `DCCCXCI`
|
2021-02-06 04:42:36 +00:00
|
|
|
|
|
|
|
```js
|
|
|
|
assert.deepEqual(convertToRoman(891), 'DCCCXCI');
|
|
|
|
```
|
|
|
|
|
2021-03-23 08:41:00 -06:00
|
|
|
`convertToRoman(1000)` debe devolver la cadena `M`
|
2021-02-06 04:42:36 +00:00
|
|
|
|
|
|
|
```js
|
|
|
|
assert.deepEqual(convertToRoman(1000), 'M');
|
|
|
|
```
|
|
|
|
|
2021-03-23 08:41:00 -06:00
|
|
|
`convertToRoman(1004)` debe devolver la cadena `MIV`
|
2021-02-06 04:42:36 +00:00
|
|
|
|
|
|
|
```js
|
|
|
|
assert.deepEqual(convertToRoman(1004), 'MIV');
|
|
|
|
```
|
|
|
|
|
2021-03-23 08:41:00 -06:00
|
|
|
`convertToRoman(1006)` debe devolver la cadena `MVI`
|
2021-02-06 04:42:36 +00:00
|
|
|
|
|
|
|
```js
|
|
|
|
assert.deepEqual(convertToRoman(1006), 'MVI');
|
|
|
|
```
|
|
|
|
|
2021-03-23 08:41:00 -06:00
|
|
|
`convertToRoman(1023)` debe devolver la cadena `MXXIII`
|
2021-02-06 04:42:36 +00:00
|
|
|
|
|
|
|
```js
|
|
|
|
assert.deepEqual(convertToRoman(1023), 'MXXIII');
|
|
|
|
```
|
|
|
|
|
2021-03-23 08:41:00 -06:00
|
|
|
`convertToRoman(2014)` debe devolver la cadena `MMXIV`
|
2021-02-06 04:42:36 +00:00
|
|
|
|
|
|
|
```js
|
|
|
|
assert.deepEqual(convertToRoman(2014), 'MMXIV');
|
|
|
|
```
|
|
|
|
|
2021-03-23 08:41:00 -06:00
|
|
|
`convertToRoman(3999)` debe devolver la cadena `MMMCMXCIX`
|
2021-02-06 04:42:36 +00:00
|
|
|
|
|
|
|
```js
|
|
|
|
assert.deepEqual(convertToRoman(3999), 'MMMCMXCIX');
|
|
|
|
```
|
|
|
|
|
|
|
|
# --seed--
|
|
|
|
|
|
|
|
## --seed-contents--
|
|
|
|
|
|
|
|
```js
|
|
|
|
function convertToRoman(num) {
|
|
|
|
return num;
|
|
|
|
}
|
|
|
|
|
|
|
|
convertToRoman(36);
|
|
|
|
```
|
|
|
|
|
|
|
|
# --solutions--
|
|
|
|
|
|
|
|
```js
|
|
|
|
function convertToRoman(num) {
|
|
|
|
var ref = [['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]];
|
|
|
|
var res = [];
|
|
|
|
ref.forEach(function(p) {
|
|
|
|
while (num >= p[1]) {
|
|
|
|
res.push(p[0]);
|
|
|
|
num -= p[1];
|
|
|
|
}
|
|
|
|
});
|
|
|
|
return res.join('');
|
|
|
|
}
|
|
|
|
```
|