Números Romanos![RESOLVIDO]

3 respostas
A

Olá pessoal, estava fazendo um exercício e fiquei travado nesse aqui:
"Crie um programa em que o usuário digite um número de até 3 dígitos e converta esse número para Romanos.Utilize funções para obter cada dígito do número decimal e para a
transformação de numeração decimal para romana ( 1 = I, 5 = V, 10 = X, 50 = L, 100 = C, 500 = D, 1.000 = M; e utilize um vetor guardando a tradução para cada um dos dígitos).

Eu fiz uma parte do código , mas estou com dificuldade para continuar , por favor me deem alguma sugestão!! OBg!

package romano;

import java.util.Scanner;


public class Romano {
    public static String[] centena(int c){
        String []cent = new String[9];
   
        cent[0]="C";
        cent[1]="CC";
        cent[2]="CCC";
        cent[3]="CD";
        cent[4]="D";
        cent[5]="DC";
        cent[6]="DCC";
        cent[7]="DCCC";
        cent[8]="CM";
        
        switch(c){
            case 100:
                System.out.println(cent[0]);
            case 200:
                System.out.println(cent[1]);
            case 300:
                System.out.println(cent[2]);
            case 400:
                System.out.println(cent[3]);
            case 500:
                System.out.println(cent[4]);
            case 600:
                System.out.println(cent[5]);
            case 700:
                System.out.println(cent[6]);
            case 800:
                System.out.println(cent[7]);
            case 900:
                System.out.println(cent[8]);
        }
        return cent;
    }
    public static String[] dezena(int b){
      String[] dez = new String[9];
        
        dez[0]="X";
        dez[1]="XX";
        dez[2]="XXX";
        dez[3]="LX";
        dez[4]="L";
        dez[5]="LX";
        dez[6]="LXX";
        dez[7]="LXXX";
        dez[8]="LC";
        
        switch(b){
            case 10:
                System.out.println(dez[0]);
            case 20:
                System.out.println(dez[1]);
            case 30:
                System.out.println(dez[2]);
            case 40:
                System.out.println(dez[3]);
            case 50:
                System.out.println(dez[4]);
            case 60:
                System.out.println(dez[5]);
            case 70:
                System.out.println(dez[6]);
            case 80:
                System.out.println(dez[7]);
            case 90:
                System.out.println(dez[8]);
        }
        return dez;
    }

    public static String[] unidade(int a){
        String [] uni = new String[9];
        
        uni[0]="I";
        uni[1]="II";
        uni[2]="III";
        uni[3]="IV";
        uni[4]="V";
        uni[5]="VI";
        uni[6]="VII";
        uni[7]="VIII";
        uni[8]="IX";
        switch(a){
            case 1:
                System.out.println(uni[0]);
            case 2:
                System.out.println(uni[1]);
            case 3:
                System.out.println(uni[2]);
            case 4:
                System.out.println(uni[3]);
            case 5:
                System.out.println(uni[4]);
            case 6:
                System.out.println(uni[5]);
            case 7:
                System.out.println(uni[6]);
            case 8:
                System.out.println(uni[7]);
            case 9:
                System.out.println(uni[8]);
        }
        return uni;
        
    }
    public static void main(String[] args) {
        Scanner teclado = new Scanner(System.in);
        int numero,cont =0;
        System.out.println("Digite um número: ");
        numero = teclado.nextInt();
        
        
            
                
        }
      }
        
    }
}

3 Respostas

L

Seria melhor vc dizer onde está sua dúvida, o que conseguiu fazer, e o que não conseguiu do que postar todo seu código e só.

R
Anibal10:
Olá pessoal, estava fazendo um exercício e fiquei travado nesse aqui: "Crie um programa em que o usuário digite um número de até 3 dígitos e converta esse número para Romanos.Utilize funções para obter cada dígito do número decimal e para a transformação de numeração decimal para romana ( 1 = I, 5 = V, 10 = X, 50 = L, 100 = C, 500 = D, 1.000 = M; e utilize um vetor guardando a tradução para cada um dos dígitos).

Eu fiz uma parte do código , mas estou com dificuldade para continuar , por favor me deem alguma sugestão!! OBg!

package romano;

import java.util.Scanner;


public class Romano {
    public static String[] centena(int c){
        String []cent = new String[9];
   
        cent[0]="C";
        cent[1]="CC";
        cent[2]="CCC";
        cent[3]="CD";
        cent[4]="D";
        cent[5]="DC";
        cent[6]="DCC";
        cent[7]="DCCC";
        cent[8]="CM";
        
        switch(c){
            case 100:
                System.out.println(cent[0]);
            case 200:
                System.out.println(cent[1]);
            case 300:
                System.out.println(cent[2]);
            case 400:
                System.out.println(cent[3]);
            case 500:
                System.out.println(cent[4]);
            case 600:
                System.out.println(cent[5]);
            case 700:
                System.out.println(cent[6]);
            case 800:
                System.out.println(cent[7]);
            case 900:
                System.out.println(cent[8]);
        }
        return cent;
    }
    public static String[] dezena(int b){
      String[] dez = new String[9];
        
        dez[0]="X";
        dez[1]="XX";
        dez[2]="XXX";
        dez[3]="LX";
        dez[4]="L";
        dez[5]="LX";
        dez[6]="LXX";
        dez[7]="LXXX";
        dez[8]="LC";
        
        switch(b){
            case 10:
                System.out.println(dez[0]);
            case 20:
                System.out.println(dez[1]);
            case 30:
                System.out.println(dez[2]);
            case 40:
                System.out.println(dez[3]);
            case 50:
                System.out.println(dez[4]);
            case 60:
                System.out.println(dez[5]);
            case 70:
                System.out.println(dez[6]);
            case 80:
                System.out.println(dez[7]);
            case 90:
                System.out.println(dez[8]);
        }
        return dez;
    }

    public static String[] unidade(int a){
        String [] uni = new String[9];
        
        uni[0]="I";
        uni[1]="II";
        uni[2]="III";
        uni[3]="IV";
        uni[4]="V";
        uni[5]="VI";
        uni[6]="VII";
        uni[7]="VIII";
        uni[8]="IX";
        switch(a){
            case 1:
                System.out.println(uni[0]);
            case 2:
                System.out.println(uni[1]);
            case 3:
                System.out.println(uni[2]);
            case 4:
                System.out.println(uni[3]);
            case 5:
                System.out.println(uni[4]);
            case 6:
                System.out.println(uni[5]);
            case 7:
                System.out.println(uni[6]);
            case 8:
                System.out.println(uni[7]);
            case 9:
                System.out.println(uni[8]);
        }
        return uni;
        
    }
    public static void main(String[] args) {
        Scanner teclado = new Scanner(System.in);
        int numero,cont =0;
        System.out.println("Digite um número: ");
        numero = teclado.nextInt();
        
        
            
                
        }
      }
        
    }
}

Olá Anibal10

Só vou dar uma idéia : você terá que decompor o numero inteiro que recebe. Exemplo : recebe o numero 649, voce tem que decompor para 600, 40 e depois 9. Dica utilize o resto da divisao(%) e a divisao(/).

A

Po, obrigado cara , eu estava pensando nessa ideia, mas nao estava conseguindo visualizar como implementá-la.

Criado 16 de março de 2013
Ultima resposta 16 de mar. de 2013
Respostas 3
Participantes 3