Ingresso:
Un numero intero.
Produzione:
- Per prima cosa converti il numero intero nel suo equivalente numero romano.
- Quindi converti ogni lettera maiuscola di quel numero romano nel loro valore decimale ASCII / UNICODE.
- E produce la somma di quelli.
Esempio:
1991 -> MCMXCI -> 77+67+77+88+67+73 -> 449
^ input ^ output
Numeri romani: ecco un forse utile convertitore di numeri romani.
Regole della sfida:
- Vengono applicate le regole del Numero romano standard, quindi nessuna forma alternativa come
IIII
oVIIII
invece diIV
eIX
. * - Le linee di Macron sopra i numeri romani oltre 1.000 sono
¯
(UNICODE nr. 175). Quindi una riga conta come+175
e due come+350
. - È consentito utilizzare qualsiasi tipo di tipo di input e output, purché rappresenti gli interi.
- I casi di test saranno nel range di
1 - 2,147,483,647
.
* Regole dei numeri romani (citazione da Wikipedia):
I numeri si formano combinando i simboli e aggiungendo i valori, quindi
II
sono due (due) eXIII
tredici (dieci e tre). Poiché ogni numero ha un valore fisso anziché rappresentare multipli di dieci, cento e così via, in base alla posizione, non è necessario zeri di "mantenimento del posto", come in numeri come 207 o 1066; quei numeri sono scritti comeCCVII
(duecento, cinque e due) eMLXVI
(mille, cinquanta, dieci, cinque e uno).I simboli sono posizionati da sinistra a destra in ordine di valore, iniziando dal più grande. Tuttavia, in alcuni casi specifici, per evitare che quattro caratteri vengano ripetuti in successione (come
IIII
oXXXX
), la notazione sottrattiva viene spesso utilizzata come segue:
I
posto primaV
oX
indica uno in meno, quindi quattro èIV
(uno in meno di cinque) e nove lo èIX
(uno in meno di dieci)X
posto primaL
oC
indica dieci in meno, quindi quaranta èXL
(dieci meno di cinquanta) e novanta èXC
(dieci meno di cento)C
posto primaD
oM
indica cento in meno, quindi quattrocento èCD
(cento meno di cinquecento) e novecento èCM
(cento meno di mille)
Ad esempio,MCMIV
è millenovecentoquattro, 1904 (M
è mille,CM
è novecento edIV
è quattro).Alcuni esempi dell'uso moderno dei numeri romani includono:
1954 comeMCMLIV
; 1990 comeMCMXC
; 2014 comeMMXIV
SOURCE
Regole generali:
- Questo è code-golf , quindi vince la risposta più breve in byte.
Non lasciare che le lingue di code-golf ti scoraggino dal pubblicare risposte con lingue non codegolfing. Prova a trovare una risposta il più breve possibile per "qualsiasi" linguaggio di programmazione. - Per la tua risposta valgono regole standard , quindi puoi usare STDIN / STDOUT, funzioni / metodo con i parametri corretti, programmi completi. La tua chiamata.
- Sono vietate le scappatoie predefinite .
- Se possibile, aggiungi un link con un test per il tuo codice.
- Inoltre, si prega di aggiungere una spiegazione, se necessario.
Casi 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
e 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
. Quindi ho corretto il secondo, ma 9999
era corretto.
2222222222
non rientra nell'intervallo indicato. Anche io sono d'accordo 5362
.