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


      PRINT ;1999, FNroman(1999)
      PRINT ;2012, FNroman(2012)
      PRINT ;1666, FNroman(1666)
      PRINT ;3888, FNroman(3888)
      END
 
      DEF FNroman(n%)
      LOCAL i%, r$, arabic%(), roman$()
      DIM arabic%(12), roman$(12)
      arabic%() = 1,   4,   5,   9,  10,  40,  50,  90, 100, 400, 500, 900,1000
      roman$() = "I","IV", "V","IX", "X","XL", "L","XC", "C","CD", "D","CM", "M"
      FOR i% = 12 TO 0 STEP -1
        WHILE n% >= arabic%(i%)
          r$ += roman$(i%)
          n% -= arabic%(i%)
        ENDWHILE
      NEXT
      = r$