Roman numerals/Decode: Difference between revisions
Content added Content deleted
No edit summary |
|||
Line 2,758: | Line 2,758: | ||
RomanDecode('MDCLXVI'); //1666 |
RomanDecode('MDCLXVI'); //1666 |
||
RomanDecode('MDLXVI'); //1566</syntaxhighlight> |
RomanDecode('MDLXVI'); //1566</syntaxhighlight> |
||
=={{header|Ed}}== |
|||
<syntaxhighlight> |
|||
H |
|||
g/[^MDCLXVI]/s///g |
|||
# simplify the quirky parts |
|||
g/CM/s//CCCCCCCCC/ |
|||
g/D/s//CCCCC/ |
|||
g/CD/s//CCCC/ |
|||
g/XC/s//XXXXXXXXX/ |
|||
g/L/s//XXXXX/ |
|||
g/XL/s//XXXX/ |
|||
g/IX/s//IIIIIIIII/ |
|||
g/V/s//IIIII/ |
|||
g/IV/s//IIII/ |
|||
# convert simplified numerals to integers |
|||
g/MMMMMMMMM/s//9/ |
|||
g/MMMMMMMM/s//8/ |
|||
g/MMMMMMM/s//7/ |
|||
g/MMMMMM/s//6/ |
|||
g/MMMMM/s//5/ |
|||
g/MMMM/s//4/ |
|||
g/MMM/s//3/ |
|||
g/MM/s//2/ |
|||
g/M/s//1/ |
|||
v/^[0-9].*$/s/.*/0&/ |
|||
g/CCCCCCCCC/s//9/ |
|||
g/CCCCCCCC/s//8/ |
|||
g/CCCCCCC/s//7/ |
|||
g/CCCCCC/s//6/ |
|||
g/CCCCC/s//5/ |
|||
g/CCCC/s//4/ |
|||
g/CCC/s//3/ |
|||
g/CC/s//2/ |
|||
g/C/s//1/ |
|||
v/^[0-9]{2}.*$/s/^([0-9])(.*)$/\10\2/ |
|||
g/XXXXXXXXX/s//9/ |
|||
g/XXXXXXXX/s//8/ |
|||
g/XXXXXXX/s//7/ |
|||
g/XXXXXX/s//6/ |
|||
g/XXXXX/s//5/ |
|||
g/XXXX/s//4/ |
|||
g/XXX/s//3/ |
|||
g/XX/s//2/ |
|||
g/X/s//1/ |
|||
v/^[0-9]{3}.*$/s/^([0-9]{2})(.*)$/\10\2/ |
|||
g/IIIIIIIII/s//9/ |
|||
g/IIIIIIII/s//8/ |
|||
g/IIIIIII/s//7/ |
|||
g/IIIIII/s//6/ |
|||
g/IIIII/s//5/ |
|||
g/IIII/s//4/ |
|||
g/III/s//3/ |
|||
g/II/s//2/ |
|||
g/I/s//1/ |
|||
v/^[0-9]{4}.*$/s/^([0-9]{3})(.*)$/\10\2/ |
|||
g/^0+([0-9])/s//\1/ |
|||
,p |
|||
Q |
|||
</syntaxhighlight> |
|||
=={{header|Eiffel}}== |
=={{header|Eiffel}}== |