39 lines
691 B
Text
39 lines
691 B
Text
def decodeSingle(letter)
|
|
if letter = "M"
|
|
return 1000
|
|
else if letter = "D"
|
|
return 500
|
|
else if letter = "C"
|
|
return 100
|
|
else if letter = "L"
|
|
return 50
|
|
else if letter = "X"
|
|
return 10
|
|
else if letter = "V"
|
|
return 5
|
|
else if letter = "I"
|
|
return 1
|
|
else
|
|
return 0
|
|
end
|
|
end
|
|
|
|
def decode(roman)
|
|
result = 0
|
|
uRoman = roman.toUpperCase()
|
|
|
|
for (i = 0) (i < len(uRoman) - 1) (i += 1)
|
|
if decodeSingle(uRoman[i]) < decodeSingle(uRoman[i + 1])
|
|
result -= decodeSingle(uRoman[i])
|
|
else
|
|
result += decodeSingle(uRoman[i])
|
|
end
|
|
end
|
|
|
|
result += decodeSingle(uRoman[len(uRoman) - 1])
|
|
return result
|
|
end
|
|
|
|
println decode("MCMXC")
|
|
println decode("MMVIII")
|
|
println decode("MDCLXVI")
|