Cree la función más corta para convertir una cadena de números romanos en un número entero.
Las reglas para cada letra se pueden encontrar en la página de Wikipedia . Las letras por encima de 1,000 tendrán paréntesis alrededor de ellas para indicar su valor más alto.
Requisitos:
- Debe convertir los números romanos del 1 al 500,000
- Debe completarse en menos de un minuto.
- No utiliza funciones integradas que podrían proporcionar una ventaja (Ej: Una función que convierte números romanos en enteros)
- Es una funcion
La función no necesita admitir fracciones. Cualquier entrada no válida debe devolver el número 0.
La función más corta gana. En caso de empate, gana el que tenga más votos.
Casos de prueba
Entrada
III
Salida
3
Entrada
IIII
Salida
0
Entrada
XVI
Salida
16
Entrada
(C)(D)(L)MMI
Salida
452001
code-golf
math
function
roman-numerals
Kevin Brown
fuente
fuente
(C)(D)(L)MMI
serían 452.001. ¿Cómo obtuviste tu valor? Además, ¿esto debe admitir formas "incorrectas" (por ejemplo, enIC
lugar deXCIX
)?Respuestas:
C ++:
914855 caracteresPodría ser comprimido aún más.
Formato ligeramente más agradable: 1582 char
fuente
Javascript, 317 caracteres
Explicación:
Sin detección de errores solo son 180 caracteres
Esto funciona de la misma manera, pero aquí hay un mejor formato:
fuente