Roman numerals/Decode: Difference between revisions

→‎{{header|Euphoria}}: Euphoria example added
mNo edit summary
(→‎{{header|Euphoria}}: Euphoria example added)
Line 152:
assert(toArabic("MDCLXVI") == 1666);
}</lang>
 
=={{header|Euphoria}}==
{{trans|PureBasic}}
<lang euphoria>constant symbols = "MDCLXVI", weights = {1000,500,100,50,10,5,1}
function romanDec(sequence roman)
integer n, lastval, arabic
lastval = 0
arabic = 0
for i = length(roman) to 1 by -1 do
n = find(roman[i],symbols)
if n then
n = weights[n]
end if
if n < lastval then
arabic -= n
else
arabic += n
end if
lastval = n
end for
return arabic
end function
 
? romanDec("MCMXCIX")
? romanDec("MDCLXVI")
? romanDec("XXV")
? romanDec("CMLIV")
? romanDec("MMXI")</lang>
 
Output:
<pre>1999
1666
25
954
2011</pre>
 
=={{header|Fortran}}==
Anonymous user