Task

Create a function taking a positive integer as its parameter and returning a string containing the Roman numeral representation of that integer. Modern Roman numerals are written by expressing each digit separately, starting with the left most digit and skipping any digit with a value of zero.



In Roman numerals:

 1990 is rendered: 1000=M, 900=CM, 90=XC; resulting in MCMXC
 2008 is written as 2000=MM, 8=VIII; or MMVIII
 1666 uses each Roman symbol in descending order: MDCLXVI


OPTION BASE 0
DIM arabic(12), roman$(12)
 
FOR i = 0 TO 12
    READ arabic(i), roman$(i)
NEXT i
 
DATA 1000, "M", 900, "CM", 500, "D", 400, "CD", 100, "C", 90, "XC"
DATA 50, "L", 40, "XL", 10, "X", 9, "IX", 5, "V",  4, "IV", 1, "I"
 
FUNCTION toRoman$(value)
    LET result$ = ""
    FOR i = 0 TO 12
        DO WHILE value >= arabic(i)
           LET result$ = result$ & roman$(i)
           LET value = value - arabic(i)
        LOOP
    NEXT i
    LET toRoman$ = result$
END FUNCTION
 
!Testing
PRINT "2009 = "; toRoman$(2009)
PRINT "1666 = "; toRoman$(1666)
PRINT "3888 = "; toRoman$(3888)
END