Roman numerals/Encode: Difference between revisions
Content added Content deleted
(Added Chipmunk Basic) |
(RPL: add section) |
||
Line 6,753: | Line 6,753: | ||
clean stack |
clean stack |
||
|} |
|||
=={{header|RPL}}== |
|||
{{trans|Python}} |
|||
{{works with|Halcyon Calc|4.2.7}} |
|||
{| class="wikitable" |
|||
! RPL code |
|||
! Comment |
|||
|- |
|||
| |
|||
≪ { 1000 900 500 400 100 90 50 40 10 9 5 4 1 } |
|||
{ "M" "CM" "D" "CD" "C" "XC" "L" "XL" "X" "IX" |
|||
"V" "IV" "I" } → divs rdig |
|||
'''IF''' DUP 5000 < '''THEN''' |
|||
"" SWAP 1 13 '''FOR''' j |
|||
divs j GET MOD LAST / IP ROT SWAP |
|||
'''WHILE''' DUP '''REPEAT''' |
|||
rdig j GET ROT SWAP + SWAP 1 - '''END''' |
|||
DROP SWAP |
|||
'''NEXT''' |
|||
'''END''' DROP |
|||
≫ ''''→ROM'''' STO |
|||
| |
|||
'''→ROM''' ''( n -- "ROMAN" )'' |
|||
store tables |
|||
if n < 5000 then |
|||
scan divisors |
|||
x,y = divmod(n, divisor) |
|||
if x > 0 then |
|||
add related digit x times |
|||
n = y |
|||
clean stack |
|||
|} |
|} |
||