Contribution:
Un nombre entier.
Production:
- Convertissez d'abord l'entier en son chiffre romain équivalent.
- Convertissez ensuite chaque lettre majuscule de ce chiffre romain en leur valeur décimale ASCII / UNICODE.
- Et produire la somme de ceux-ci.
Exemple:
1991 -> MCMXCI -> 77+67+77+88+67+73 -> 449
^ input ^ output
Chiffres romains: voici un convertisseur de chiffres romains peut-être utile.
Règles du défi:
- Les règles standard du chiffre romain sont appliquées, donc aucune autre forme comme
IIII
ouVIIII
au lieu deIV
etIX
. * - Les lignes Macron au-dessus des 1000 chiffres romains sont
¯
(UNICODE nr. 175). Donc une ligne compte+175
et deux comme+350
. - Vous êtes autorisé à utiliser tout type de type d'entrée et de sortie, tant qu'il représente les entiers.
- Les cas de test seront de l'ordre de
1 - 2,147,483,647
.
* Règles du chiffre romain (citation de Wikipedia):
Les nombres sont formés en combinant des symboles et en ajoutant les valeurs, il en
II
est de même de deux (deux) et deXIII
treize (dix et trois). Parce que chaque chiffre a une valeur fixe plutôt que de représenter des multiples de dix, cent et ainsi de suite, selon la position, il n'est pas nécessaire de mettre des zéros de "placement", comme dans les nombres comme 207 ou 1066; ces nombres sont écrits commeCCVII
(deux centaines, cinq et deux) etMLXVI
(mille, cinquante, dix, cinq et un).Les symboles sont placés de gauche à droite par ordre de valeur, en commençant par le plus grand. Cependant, dans quelques cas spécifiques, pour éviter que quatre caractères ne se répètent successivement (comme
IIII
ouXXXX
), la notation soustractive est souvent utilisée comme suit:
I
placé avantV
ouX
indique un de moins, donc quatre estIV
(un de moins de cinq) et neuf estIX
(un de moins de dix)X
placé avantL
ouC
indique dix de moins, donc quarante estXL
(dix de moins de cinquante) et quatre-vingt-dix estXC
(dix de moins de cent)C
placé avantD
ouM
indique cent de moins, donc quatre cents estCD
(cent de moins de cinq cents) et neuf cents estCM
(cent de moins de mille)
Par exemple,MCMIV
est mille neuf cent quatre, 1904 (M
est un millier,CM
est neuf centIV
quatre).Voici quelques exemples de l'utilisation moderne des chiffres romains:
1954 asMCMLIV
; 1990 commeMCMXC
; 2014 commeMMXIV
SOURCE
Règles générales:
- C'est le code-golf , donc la réponse la plus courte en octets l'emporte.
Ne laissez pas les langues de golf de code vous décourager de publier des réponses avec des langues autres que le golf de code. Essayez de trouver une réponse aussi courte que possible pour «n'importe quel» langage de programmation. - Des règles standard s'appliquent à votre réponse, vous êtes donc autorisé à utiliser STDIN / STDOUT, des fonctions / méthodes avec les paramètres appropriés, des programmes complets. Ton appel.
- Les failles par défaut sont interdites.
- Si possible, veuillez ajouter un lien avec un test pour votre code.
- Veuillez également ajouter une explication si nécessaire.
Cas de test:
100 -> 67
1 -> 73
4 -> 159
22 -> 322
5000 -> 261
2016 -> 401
1000000000 -> 427
1991 -> 449
9999 -> 800
1111111111 -> 2344
2147483647 -> 5362
9999
-> M(X)CMXCIX
-> 77+263+67+77+88+67+73+88
-> 800
et 2147483647
-> ((MMCXLV)MMCDLXXX)MMMDCXLVII
-> 427+427+417+438+426+436 + 252+252+242+243+251+263+263+263 + 77+77+77+68+67+88+76+86+73+73
-> 5362
. J'ai donc corrigé la seconde, mais 9999
c'était correct.
2222222222
n'est pas dans la plage donnée. Je suis également d'accord avec 5362
.