Eingang:
Eine ganze Zahl.
Ausgabe:
- Konvertieren Sie zuerst die Ganzzahl in die entsprechende römische Zahl.
- Konvertieren Sie dann jeden Großbuchstaben dieser römischen Ziffer in ihren ASCII / UNICODE-Dezimalwert.
- Und die Summe davon ausgeben.
Beispiel:
1991 -> MCMXCI -> 77+67+77+88+67+73 -> 449
^ input ^ output
Römische Ziffern: Hier ist ein vielleicht nützlicher Umrechner für römische Ziffern .
Herausforderungsregeln:
- Standardregeln für römische Zahlen werden angewendet, daher gibt es keine alternativen Formen wie
IIII
oderVIIII
anstelle vonIV
undIX
. * - Die Macron-Linien über den römischen Ziffern nach 1.000 sind
¯
(UNICODE Nr. 175). Eine Zeile zählt also als+175
und zwei als+350
. - Sie können einen beliebigen Eingabe- und Ausgabetyp verwenden, sofern dieser die ganzen Zahlen darstellt.
- Die Testfälle liegen im Bereich von
1 - 2,147,483,647
.
* Regeln für römische Ziffern (Zitat aus Wikipedia):
Zahlen werden durch Kombinieren von Symbolen und Addieren der Werte gebildet, also
II
zwei (zwei Einsen) undXIII
dreizehn (zehn und drei Einsen). Da jede Zahl einen festen Wert hat, anstatt ein Vielfaches von zehn, einhundert usw. zu repräsentieren, besteht keine Notwendigkeit, Nullen zu "platzieren", wie dies bei Zahlen wie 207 oder 1066 der Fall ist. Diese Zahlen sind geschrieben alsCCVII
(zweihundert, fünf und zwei Einsen) undMLXVI
(tausend, fünfzig, zehn, fünf und eins).Die Symbole werden von links nach rechts in der Reihenfolge ihres Werts angeordnet, beginnend mit dem größten. In einigen speziellen Fällen wird die subtraktive Notation jedoch häufig wie folgt verwendet , um zu vermeiden, dass vier Zeichen nacheinander wiederholt werden (z. B.
IIII
oderXXXX
):
I
steht vorV
oderX
gibt eins weniger an, also vier istIV
(eins weniger als fünf) und neun istIX
(eins weniger als zehn)X
platziert vorL
oderC
zeigt zehn weniger an, also sind vierzigXL
(zehn weniger als fünfzig) und neunzigXC
(zehn weniger als hundert)C
platziert vorD
oderM
zeigt hundert weniger an, also vierhundert istCD
(hundert weniger als fünfhundert) und neunhundert istCM
(hundert weniger als tausend)
Zum BeispielMCMIV
ist eintausendneunhundertvier, 1904 (M
ist eintausend,CM
ist neunhundert undIV
ist vier).Einige Beispiele für die moderne Verwendung römischer Ziffern sind:
1954 alsMCMLIV
; 1990 alsMCMXC
; 2014 alsMMXIV
QUELLE
Allgemeine Regeln:
- Das ist Code-Golf , also gewinnt die kürzeste Antwort in Bytes.
Lassen Sie sich von Code-Golf-Sprachen nicht davon abhalten, Antworten mit Nicht-Codegolf-Sprachen zu veröffentlichen. Versuchen Sie, für jede Programmiersprache eine möglichst kurze Antwort zu finden. - Für Ihre Antwort gelten Standardregeln. Daher dürfen Sie STDIN / STDOUT, Funktionen / Methode mit den richtigen Parametern und vollständige Programme verwenden. Ihr Anruf.
- Standardlücken sind verboten.
- Fügen Sie nach Möglichkeit einen Link mit einem Test für Ihren Code hinzu.
- Fügen Sie ggf. auch eine Erklärung hinzu.
Testfälle:
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
und 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
. Also habe ich die zweite korrigiert, aber die 9999
stimmte.
2222222222
liegt nicht im angegebenen Bereich. Ich stimme auch zu 5362
.