Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Scanner;
- //Aluno: Lucas David Canellas
- //Matricula: 218.083.120
- //17. Leia um número decimal (até 3 dígitos) e escreva o seu equivalente em numeração
- //romana. Utilize métodos para obter cada dígito do número decimal e para a
- //transformação de numeração decimal para romana (Dica1: 1 = I, 5 = V, 10 = X, 50 = L, 100 =
- //C, 500 = D, 1.000 = M; Dica2: utilize um vetor guardando a tradução para cada um dos
- //dígitos).
- public class NumeroRomano {
- private double numero;
- private double[] vetorDigito = new double[3];
- private String[] vetorTraduzido = new String[100];
- // pegar entrada pelo construtor
- public NumeroRomano() {
- Scanner teclado = new Scanner(System.in);
- System.out.println("Insira o numero: ");
- numero = teclado.nextDouble();
- }
- // pegar cada digito e armazenar em um array
- public void PegarDigito() {
- int i = 0;
- while (numero / 10 != 0) {
- vetorDigito[i] = numero % 10;
- numero = (int) numero / 10;
- i++;
- }
- }
- public void Traducao(NumeroRomano x) {
- int num;
- num = (int) ((x.vetorDigito[0] * 1) + (x.vetorDigito[1] * 10) + (x.vetorDigito[2] * 100));// transformei os
- // numeros do vetor
- // em inteiro
- // novamente
- System.out.println("Numero: " + num);
- int contador = 0;
- // divisões sucessivas para tranasformar em romano
- if (num / 100 >= 5) {
- x.vetorTraduzido[contador] = "D";
- num = num - 500;
- contador++;
- }
- int aux = num;
- if (num >= 100 && num < 500) {
- while (aux >= 100) {
- x.vetorTraduzido[contador] = "C";
- contador++;
- aux = aux - 100;
- }
- }
- num = aux;
- if (num < 100 || num >= 50) {
- while (aux >= 50) {
- x.vetorTraduzido[contador] = "L";
- contador++;
- aux = aux - 50;
- }
- }
- num = aux;
- if (num < 50 || num >= 10) {
- while (aux >= 10) {
- x.vetorTraduzido[contador] = "X";
- contador++;
- aux = aux - 10;
- }
- }
- num = aux;
- if (num < 10 || num >= 5) {
- while (aux >= 5) {
- x.vetorTraduzido[contador] = "V";
- contador++;
- aux = aux - 5;
- }
- }
- num = aux;
- if (num < 5 || num >= 1) {
- while (aux > 0) {
- x.vetorTraduzido[contador] = "I";
- contador++;
- aux = aux - 1;
- }
- }
- }
- public static void main(String[] args) {
- NumeroRomano x = new NumeroRomano();
- x.PegarDigito();
- x.Traducao(x);
- System.out.print("Numero em romano: ");
- int i = 0;
- while (x.vetorTraduzido[i] != null) {
- System.out.print(x.vetorTraduzido[i]);
- i++;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement