È l'anno MDLXVII in un mondo in cui l'impero romano non è mai caduto e il crollo nelle epoche buie non è mai avvenuto. A causa del lungo periodo di Pax Romana, la stabilità economica dell'impero ha permesso alla tecnologia di progredire rapidamente.
I romani hanno iniziato a dilettarsi con i circuiti e hanno inventato un calcolatore ingegnoso che non richiede l'uso di un pulsante "uguale". Lo chiamano "notazione polacca romana"
Per effettuare un calcolo, inseriscono prima i loro operandi, quindi l'operazione.
Ad esempio, 100 + 11 * 20 sarebbe C XI XX * +.
Inoltre
I romani hanno scoperto che spesso hanno bisogno di fare più calcoli contemporaneamente e preferirebbero che il metodo restituisse ogni valore "nello stack" in una sorta di struttura simile a matrice / elenco / tupla. (ad es. X I + X I - CC II +restituirebbe [11, 9, 202])
La sfida è sviluppare un programma di calcolatrice in grado di effettuare questi calcoli.
Chiarimento : è richiesta la notazione sottrattiva. Non mi ero reso conto che non era una caratteristica riconosciuta nell'antico impero romano. Il compito era quindi ambiguo e mi scuso.
Linee guida minime
- Il tuo output sarà in numeri arabi.
- Hai solo bisogno di convertire da numeri romani fino a 5000.
- Dovrai supportare le operazioni +, -, /, * (addizione, sottrazione, divisione e moltiplicazione).
- Se la divisione è basata su virgola mobile o su numeri interi è specifica dell'implementazione. O funziona per questa sfida.
- L'output dovrà supportare numeri fino a 4 miliardi.
- La risposta più breve in assoluto, E in ogni lingua vince. Questa è una sfida di golf del codice ma adoro la varietà.
In caso di pareggio, fattori come il supporto per numeri romani superiori a 5000 o operazioni aggiuntive saranno considerati la prima domanda vincente.
