30 lines
912 B
Text
30 lines
912 B
Text
romans$ = "MDCLXVI"
|
|
decmls$ = "1000,500,100,50,10,5,1"
|
|
|
|
sub romanDec(s$)
|
|
local i, n, prev, res, decmls$(1)
|
|
|
|
n = token(decmls$, decmls$(), ",")
|
|
|
|
for i = len(s$) to 1 step -1
|
|
n = val(decmls$(instr(romans$, mid$(s$, i, 1))))
|
|
if n < prev n = 0 - n
|
|
res = res + n
|
|
prev = n
|
|
next i
|
|
return res
|
|
end sub
|
|
|
|
? romanDec("MCMXCIX") // 1999
|
|
? romanDec("MDCLXVI") // 1666
|
|
? romanDec("XXV") // 25
|
|
? romanDec("XIX") // 19
|
|
? romanDec("XI") // 11
|
|
? romanDec("CMLIV") // 954
|
|
? romanDec("MMXI") // 2011
|
|
? romanDec("CD") // 400
|
|
? romanDec("MCMXC") // 1990
|
|
? romanDec("MMVIII") // 2008
|
|
? romanDec("MMIX") // 2009
|
|
? romanDec("MDCLXVI") // 1666
|
|
? romanDec("MMMDCCCLXXXVIII") // 3888
|