Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --[[-------------------------------------------------
- CÓDIGO DE NÚMERO A ROMANO
- -------------------------------------------------]]--
- function getSimbolo ( n, zeros )
- n = n + 0
- zeros = zeros + 0
- if n == 1 then
- if zeros == 0 then return "I" end
- if zeros == 1 then return "X" end
- if zeros == 2 then return "C" end
- if zeros == 3 then return "M" end
- end
- if n == 2 then return "II" end
- if n == 3 then return "III" end
- if n == 4 then return "I" .. getSimbolo ( 5, zeros ) end
- if n == 5 then
- if zeros == 0 then return "V" end
- if zeros == 1 then return "L" end
- if zeros == 2 then return "D" end
- end
- if n == 6 then return getSimbolo ( 5, zeros ) .. "I" end
- if n == 7 then return getSimbolo ( 5, zeros ) .. "II" end
- if n == 8 then return getSimbolo ( 5, zeros ) .. "III" end
- if n == 9 then return getSimbolo ( 1, zeros ) .. getSimbolo ( 1, zeros+1 ) end
- return "asd"
- end
- function toRoman( n )
- resposta = ""
- ntext = n .. ""
- index = #ntext-1
- if #ntext < 1 then return "" end -- Si es negatiu o cero
- for i = 1, #ntext do
- resposta = resposta .. "" .. getSimbolo ( string.sub ( ntext, i, i ) , index )
- index = index - 1
- end
- return resposta
- end
- --[[-------------------------------------------------
- CÓDIGO DE ROMANO A NÚMERO
- -------------------------------------------------]]--
- function getWeight ( chr )
- if chr == 'I' then return 1 end
- if chr == 'V' then return 5 end
- if chr == 'X' then return 10 end
- if chr == 'L' then return 50 end
- if chr == 'C' then return 100 end
- if chr == 'D' then return 500 end
- if chr == 'M' then return 1000 end
- return 0
- end
- function convert ( romano )
- result = 0
- for i = 1, (#romano-1) do
- a = getWeight ( string.sub ( romano, i, i ) )
- b = getWeight ( string.sub ( romano, i + 1 , i + 1 ) )
- aux = 0
- if a < b then
- aux = - a
- else
- aux = a
- end
- result = result + aux
- end
- result = result + getWeight ( string.sub ( romano, #romano, #romano ) ) -- última iteración
- return result
- end
- --[[-------------------------------------------------
- PRUEBAS DE ROMANO A NÚMERO
- -------------------------------------------------]]--
- num = "MCMXCIX"
- print ( "\n\n\t" .. num .. " -> " .. convert ( num ) .. "\n" )
- num = "CXCIII"
- print ( "\n\n\t" .. num .. " -> " .. convert ( num ) .. "\n" )
- num = "XIV"
- print ( "\n\n\t" .. num .. " -> " .. convert ( num ) .. "\n" )
- --[[-------------------------------------------------
- PRUEBAS DE NÚMERO A ROMANO
- -------------------------------------------------]]--
- num = "1999"
- print ( "\n\n\t" .. num .. " -> " .. toRoman ( num ) .. "\n" )
- num = "193"
- print ( "\n\n\t" .. num .. " -> " .. toRoman ( num ) .. "\n" )
- num = "14"
- print ( "\n\n\t" .. num .. " -> " .. toRoman ( num ) .. "\n" )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement