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


HAI 1.2
I HAS A Romunz ITZ A BUKKIT
Romunz HAS A SRS  0 ITZ "M"
Romunz HAS A SRS  1 ITZ "CM"
Romunz HAS A SRS  2 ITZ "D"
Romunz HAS A SRS  3 ITZ "CD"
Romunz HAS A SRS  4 ITZ "C"
Romunz HAS A SRS  5 ITZ "XC"
Romunz HAS A SRS  6 ITZ "L"
Romunz HAS A SRS  7 ITZ "XL"
Romunz HAS A SRS  8 ITZ "X"
Romunz HAS A SRS  9 ITZ "IX"
Romunz HAS A SRS 10 ITZ "V"
Romunz HAS A SRS 11 ITZ "IV"
Romunz HAS A SRS 12 ITZ "I"
 
I HAS A Valuez ITZ A BUKKIT
Valuez HAS A SRS  0 ITZ 1000
Valuez HAS A SRS  1 ITZ  900
Valuez HAS A SRS  2 ITZ  500
Valuez HAS A SRS  3 ITZ  400
Valuez HAS A SRS  4 ITZ  100
Valuez HAS A SRS  5 ITZ   90
Valuez HAS A SRS  6 ITZ   50
Valuez HAS A SRS  7 ITZ   40
Valuez HAS A SRS  8 ITZ   10
Valuez HAS A SRS  9 ITZ    9
Valuez HAS A SRS 10 ITZ    5
Valuez HAS A SRS 11 ITZ    4
Valuez HAS A SRS 12 ITZ    1
 
HOW IZ I Romunize YR Num
  I HAS A Result ITZ ""
  IM IN YR Outer UPPIN YR Dummy TIL BOTH SAEM Num AN 0
     IM IN YR Inner UPPIN YR Index TIL BOTH SAEM Index AN 13
       BOTH SAEM Num AN BIGGR OF Num AN Valuez'Z SRS Index, O RLY?
         YA RLY
            Num R DIFF OF Num AN Valuez'Z SRS Index
            Result R SMOOSH Result Romunz'Z SRS Index MKAY
            GTFO
        OIC
      IM OUTTA YR Inner
    IM OUTTA YR Outer
    FOUND YR Result
IF U SAY SO
 
VISIBLE SMOOSH 2009 " = " I IZ Romunize YR 2009 MKAY MKAY
VISIBLE SMOOSH 1666 " = " I IZ Romunize YR 1666 MKAY MKAY
VISIBLE SMOOSH 3888 " = " I IZ Romunize YR 3888 MKAY MKAY
KTHXBYE