Você está na página 1de 2

package conversorromanos; public class conversorRomano { private final int num; private static int[] numeros = {1000, 900,

500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1}; private static String[] letras = {"M", "CM", "D", "CD", "C", "XC", "L", "XL" , "X", "IX", "V", "IV", "I"}; public conversorRomano(String romano) { romano = romano.toUpperCase(); int i = 0; int arabico = 0; while(i < romano.length()){ char letra = romano.charAt(i); int numero = letraEquivalente(letra); i++; if(i== romano.length()){ arabico += numero; } else{ int proximoNumero = letraEquivalente(romano.charAt(i)); if(proximoNumero > numero){ arabico += (proximoNumero - numero); i++; }else { arabico += numero; } } } num = arabico; } private int letraEquivalente(char letra){ switch(letra){ case 'I': return 1; case 'V': return 5; case 'X': return 10; case 'L': return 50; case 'C': return 100; case 'D': return 500; case 'M': return 1000; default: return -1; } } public String toString(){ String romano = ""; int N = num; for (int i = 0; i < numeros.length; i++) {

while (N >= numeros[i]){ romano += letras[i]; N -= numeros[i]; } } return romano; } } -------------------------------------------------------------------------------------

package conversorromanos; public class Executor { public static void main(String[] args) {

conversorRomano R = new conversorRomano("XX"); R.toString(); } }

Você também pode gostar