Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Lucas Tomasi

[Resolvido] Exercício do livro Java como programar quarta edição

Recommended Posts

Olá,

 

Estou começando com java, e como meu irmão já tinha este livro, estou inciando meu estudo lendo o Java Como Programar - quarta edição.

Não estou conseguindo resolver o exercício 2.32. Segue o enunciado:

 

2.32 Escreva um aplicativo que lê um número que consiste em cinco dígitos digitados pelo usuário, separa o número em seus dígitos individuais e imprime os dígitos separados uns dos outros por três espaços cada. Por exemplo, se o usuário digitar o número 42339, o programa deve imprimir: 4 2 3 3 9

 

[Dica: esse exercício é possível de ser realizado com as técnicas que você aprendeu neste capítulo. Você precisará utilizar tanto as operações de divisão como as de módulo para "selecionar" cada dígito.]

 

Suponha que o usuário digite a quantidade de dígitos correta. O que acontece quando você executa o programa e digita um número com mais de cinco dígitos? O que acontece quando você executa o programa e digita um número com menos de cinco dígitos?

Bom.. aí está ele, bom até agora o livro apenas ensinou a como usar operadores aritméticos, instruções de tomada de decisão (if) e operadores relacionais de igualdade.

 

Se alguém tiver alguma idéia, ficaria muito grato.

 

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Da pra fazer usando apenas operadores aritméticos.

Uma possível solução:

 

Teste.java

class Teste{

  public static void main (String[] args){
	int n0 = Integer.parseInt(args[0]);
	int n1 = n0 / 10000;
	int n2 = (n0 - n1 * 10000) / 1000;
	int n3 = (n0 - n1 * 10000 - n2 * 1000) / 100;
	int n4 = (n0 - n1 * 10000 - n2 * 1000 - n3 * 100) / 10;
	int n5 = (n0 - n1 * 10000 - n2 * 1000 - n3 * 100 - n4 * 10);

	System.out.println(n1+" "+n2+" "+n3+" "+n4+" "+n5);
  }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu estava tentando dividir por vários números, mas não achava nenhuma relação. Depois um amigo falou em 10000 e consegui fazer.

 

Eu fiz assim:

 

import javax.swing.JOptionPane;
public class Projeto_2_32 {

	public static void main(String[] args) {
		String numero;
		int numeroInt, resto1, divisao1, resto2, divisao2, resto3, divisao3, resto4, divisao4;
		
		numero = JOptionPane.showInputDialog( "Digite um número com 5 dígitos" );

		numeroInt = Integer.parseInt( numero );
		
		resto1 = numeroInt % 10000;
		divisao1 = numeroInt / 10000; // numero 1
		
		resto2 = resto1 % 1000;
		divisao2 = resto1 / 1000; // numero 2
		
		resto3 = resto2 % 100;
		divisao3 = resto2 / 100; //numero 3
		
		resto4 = resto3 % 10; // numero 5
		divisao4 = resto3 / 10; // numero 4
		
		JOptionPane.showMessageDialog(null, divisao1 + "   " + divisao2 + "   " + divisao3 + "   " + divisao4 + "   " + resto4);
	}

}

Muito obrigado pela atenção Prog

 

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.