Créez la fonction la plus courte pour convertir une chaîne de chiffres romains en entier.
Les règles de chaque lettre se trouvent sur la page Wikipedia . Les lettres supérieures à 1 000 auront des parenthèses placées autour d'eux pour signaler leur valeur supérieure.
Exigences:
- Doit convertir les chiffres romains de 1 à 500 000
- Doit terminer en moins d'une minute
- N'utilise pas de fonctions intégrées qui pourraient fournir un avantage (Ex: une fonction qui convertit les chiffres romains en entiers)
- Est une fonction
La fonction n'a pas besoin de prendre en charge les fractions. Toute entrée non valide doit renvoyer le chiffre 0.
La fonction la plus courte l'emporte. En cas d'égalité, celui qui a le plus de votes l'emporte.
Cas de test
Contribution
III
Production
3
Contribution
IIII
Production
0
Contribution
XVI
Production
16
Contribution
(C)(D)(L)MMI
Production
452001
code-golf
math
function
roman-numerals
Kevin Brown
la source
la source
(C)(D)(L)MMI
serait 452 001. Comment avez-vous obtenu votre valeur? De plus, cela doit-il prendre en charge les formulaires "inappropriés" (par exempleIC
au lieu deXCIX
)?Réponses:
C ++:
914855 caractèresIl pourrait être encore compressé.
Formatage légèrement plus agréable: 1582 caractères
la source
Javascript, 317 caractères
Explication:
Sans détection d'erreur, c'est seulement 180 caractères
Cela fonctionne de la même manière, mais voici un meilleur formatage:
la source