Es ist das Jahr MDLXVII in einer Welt, in der das Römische Reich niemals unterging und der Zusammenbruch in die dunklen Zeiten niemals stattfand. Aufgrund der längeren Zeit von Pax Romana ermöglichte die wirtschaftliche Stabilität des Reiches einen raschen Fortschritt der Technologie.
Die Römer haben begonnen, sich mit Schaltkreisen zu beschäftigen, und einen ausgeklügelten Taschenrechner erfunden, für den kein "Gleich" -Knopf erforderlich ist. Sie nennen es "römisch-polnische Notation"
Um eine Berechnung durchzuführen, geben sie zuerst ihre Operanden und dann die Operation ein.
Zum Beispiel wäre 100 + 11 * 20 C XI XX * +.
zusätzlich
Die Römer haben festgestellt, dass sie häufig mehrere Berechnungen gleichzeitig durchführen müssen, und würden es vorziehen, wenn die Methode jeden Wert "auf dem Stapel" in einer Art Array / Liste / Tupel-ähnlicher Struktur zurückgibt. (zB X I + X I - CC II +würde zurückkehren [11, 9, 202])
Die Herausforderung besteht darin, ein Taschenrechnerprogramm zu entwickeln, mit dem diese Berechnungen durchgeführt werden können.
Klarstellung : Subtraktive Notation ist erforderlich. Ich hatte nicht bemerkt, dass es im antiken römischen Reich kein anerkanntes Merkmal war. Die Aufgabe war daher nicht eindeutig, und ich entschuldige mich.
Mindestrichtlinien
- Ihre Ausgabe erfolgt in arabischen Ziffern.
- Sie müssen nur von römischen Ziffern bis zu 5000 konvertieren.
- Sie müssen +, -, /, * Operationen unterstützen (Addition, Subtraktion, Division und Multiplikation).
- Ob die Division auf Gleitkomma oder Ganzzahl basiert, ist implementierungsspezifisch. Beides funktioniert für diese Herausforderung.
- Ihre Ausgabe muss Zahlen bis zu 4 Milliarden unterstützen.
- Die kürzeste Antwort insgesamt UND in jeder Sprache gewinnt. Dies ist eine Code Golf Challenge, aber ich liebe die Vielfalt.
Im Falle eines Unentschieden werden Faktoren wie die Unterstützung von römischen Ziffern über 5000 oder zusätzliche Operationen als die früheste Einreichung angesehen, die gewinnt.
