RosettaCodeData/Task/Roman-numerals-Decode/Nim/roman-numerals-decode.nim
2016-12-05 23:44:36 +01:00

12 lines
368 B
Nim

import tables
let rdecode = {'M': 1000, 'D': 500, 'C': 100, 'L': 50, 'X': 10, 'V': 5, 'I': 1}.toTable
proc decode(roman): int =
for i in 0 .. <roman.high:
let (rd, rd1) = (rdecode[roman[i]], rdecode[roman[i+1]])
result += (if rd < rd1: -rd else: rd)
result += rdecode[roman[roman.high]]
for r in ["MCMXC", "MMVIII", "MDCLXVI"]:
echo r, " ", decode(r)