Advertisement
Guest User

IntToRoman

a guest
Oct 19th, 2016
282
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 0.95 KB | None | 0 0
  1. IntToRomanStr = function(int)
  2.     if (int < 1) then
  3.         return "0";
  4.  
  5.     elseif (int > 5000) then
  6.         return "";
  7.     end -- if/else
  8.  
  9.     local str = "";
  10.     local digits = {
  11.         {1000, "M"},
  12.         {500,  "D"},
  13.         {100,  "C"},
  14.         {50,   "L"},
  15.         {10,   "X"},
  16.         {5,    "V"},
  17.         {1,    "I"}
  18.     };
  19.     local subs = {
  20.         {"CCCC", "CD"},
  21.         {"XXXX", "XL"},
  22.         {"IIII", "IV"},
  23.         {"DCD", "CM"},
  24.         {"LXL", "XC"},
  25.         {"VIV", "IX"}
  26.     };
  27.  
  28.     for i = 1, table.getn(digits) do
  29.         for y = 1, 1000 do
  30.             if (int < digits[i][1]) then
  31.                 break;
  32.             end -- if
  33.  
  34.             int = int-digits[i][1];
  35.             str = string.format("%s%s", str, digits[i][2]);
  36.         end -- for
  37.     end -- for
  38.  
  39.     for i = 1, table.getn(subs) do
  40.         str = string.gsub(str, subs[i][1], subs[i][2]);
  41.     end -- for
  42.  
  43.     return str;
  44. end -- function
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement