ViniGodoy 2 de out. de 2011
Comece estudando como fuciona o sistema de numeração romano:
O sistema de numeração romana (algarismos romanos ou números romanos) desenvolveu-se na Roma Antiga, e foi utilizado em todo o Império Romano. É composto por sete letras maiúsculas do alfabeto latino: I, V, X, L, C, D e M.
Alguns valores inteiros são representados por letras romanas específicas. São eles:
Para representar outros números, são escritos alguns algarismos, começando do algarismo de maior valor e seguindo a seguinte regra:
Assim, XI representa 10 + 1 = 11, enquanto XC representa 10...
Em seguida, veja o funcionamento do método charAt, da classe String:
String x = "Vinícius";
System.out.println(x.charAt(0)); //Imprime 'V'
System.out.println(x.charAt(1)); //Imprime 'i'
System.out.println(x.charAt(2)); //Imprime 'n'
Finalmente, elabore o que conseguir do seu código e poste aqui as dúvidas referentes a ele.
thiago_farias 2 de out. de 2011
Farei isto!
estava meio ruim de começar!!
schonrockas 23 de mar. de 2015
/**
* Author : Francisco Edmundo
*
**/
private int traduzirNumeralRomano ( String texto ) {
int n = 0 ;
int numeralDaDireita = 0 ;
for ( int i = texto . length () - 1 ; i > = 0 ; i -- ) {
int valor = ( int ) traduzirNumeralRomano ( texto . charAt ( i ));
n + = valor * Math . signum ( valor + 0.5 - numeralDaDireita );
numeralDaDireita = valor ;
}
return n ;
}
private double traduzirNumeralRomano ( char caractere ) {
return Math . floor ( Math . pow ( 10 , "IXCM" . indexOf ( caractere ))) + 5 * Math . floor ( Math . pow ( 10 , "VLD" . indexOf ( caractere )));
}
ViniGodoy 23 de mar. de 2015
4 anos depois, alguém postou a resposta! heheheheh
Não cheguei a conferir. Está certo ou você tem alguma dúvida?
schonrockas 23 de mar. de 2015
Está certo sim. Esse é um dos métodos mais eficientes e resumidos para a resolução desse problema.
Foi desenvolvido pelo Ilustríssimo professor Francisco Edmundo.
ViniGodoy 23 de mar. de 2015
schonrockas:
Está certo sim. Esse é um dos métodos mais eficientes e resumidos para a resolução desse problema.
Foi desenvolvido pelo Ilustríssimo professor Francisco Edmundo.
Testei aqui, funcionou perfeitamente. É realmente uma solução muito inteligente.
Adicionei aos meus favoritos.
marcelot 8 de ago. de 2020 1 like
Quase 10 anos se passaram! Mas o assunto ainda Vibra forte. Obrigado @ViniGodoy e professor @schonrockas Professor Francisco Edmundo.