Metodo para converter numeros romanos para decimal....alguem sabe?

me deparei com o seguinte problema :

Implementar um programa em java que leia um String (utilizar o método next da classe Scanner) que contenha um número romano válido e retorne valor decimal correspondente:

public static int converteParaRomanoParaDecimal(String numeroRomano)

alguem sabe como resolver???
abraço!

Comece estudando como fuciona o sistema de numeração romano:

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.

Farei isto!
estava meio ruim de começar!!

e ainda um adendo a resposta do vini, segue: http://www.faqs.org/docs/javap/c9/ex-9-3-answer.html

[]`s


/**
* 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)));
	}

4 anos depois, alguém postou a resposta! heheheheh

Não cheguei a conferir. Está certo ou você tem alguma dúvida?

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.

[quote=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.[/quote]

Testei aqui, funcionou perfeitamente. É realmente uma solução muito inteligente. :slight_smile:

Adicionei aos meus favoritos.

Quase 10 anos se passaram! Mas o assunto ainda Vibra forte. Obrigado @ViniGodoy e professor @schonrockas Professor Francisco Edmundo.

1 curtida