Como desmembrar um inteiro de 5 digitos?
regras de divisão por favor pseudocodigo.
Como desmembrar um inteiro de 5 digitos?
regras de divisão por favor pseudocodigo.
x = 31415;
d5 = x % 10; // recebe 5
x = x / 10; // recebe 3141
d4 = x % 10; // recebe 1
x = x / 10; // recebe 314
d3 = x % 10; // recebe 4
x = x / 10; // recebe 31
d2 = x % 10; // recebe 1
x = x / 10; // recebe 3
d1 = x % 10; // recebe 3
ou converte pra uma String e pega caracter a caracter…
Se o número for negativo, passe o número para positivo, faça as divisões e restos (módulos) como eu fiz acima, e depois ponha o sinal de volta.
Não tem uma forma mais didatica de fazer ?
:!:
vc precisa fazer isso exatamente pra quê?
sabendo qual é o “problema” talves se tenha uma lógica melhor?
acho que passar pra String e pegar cada caracter pode ser mais fácil de entender, se for o caso.
Dá uma olhada se assim ajuda.
Segue um código comentado.
/**
* Desmembra um número inteiro em um array com cada digito do número
* informado. Os dígitos no array estão na mesma ordem que informado
* em <code>numero</code>.
* @param numero Número a ser desmembrado.
* @return Um array com os membros do numero informado. Se o número
* informado for igual a 0 (zero), será retornado um array
* vazio.
*/
public static Integer[] desmembrar(int numero){
// cria uma lista para abrigar cada membro do numero informado
java.util.List<Integer> membros = new java.util.ArrayList<Integer>();
// salva a variavel numero em outra temporaria.
int temp = numero;
// valida a existencia de um proximo membro.
while( temp != 0 ){
// extrai o membro.
int membro = temp % 10;
// adiciona o membro na lista
membros.add(new Integer(membro) );
// altera a variavel para extrair o proximo membro.
temp = temp / 10;
}
// inverte a ordem da lista para restaurar a ordem dos dígitos.
java.util.Collections.reverse(membros);
// transforma a Lista em um Array e retorna o resultado.
return membros.toArray(new Integer[ membros.size() ]);
}
espero que ajude.
escreva um aplicativo que le um inteiro de 5 digitos
e desmembra o numero exemplo 42339 o programa deve impirmir
4 2 3 3 9
vc precisara usar tecnicas de divisão e resto da divisão para selecionar os digitos
exemplo entrada 12345 do usuario
public static void desmembramentoRegraDeDivisao ( int n ) {
int num = n ;
int d5 = num%10 ;
n = n / 10 ;
int d4 = num%10 ;
n = n / 10 ;
int d3 = num%10 ;
n = n / 10 ;
int d2 = num%10 ;
n = n / 10 ;
int d1 = num%10 ;
JOptionPane.showMessageDialog ( null, " Digitos desmembrados " + d1 + " "+ d2 + " " + d3 + " " + d4 + " " + d5 );
}
eu fiz dessa forma e ta dando errado --"
imprimi 5 5 5 5 5
import javax.swing.*;
public class ExerDivisao {
public static void desmembramentoPorString ( String v ) {
String resp = "";
for (int i=0; i < v.length(); i++) {
resp = resp + " " + v.charAt(i) ;
}
System.out.println( resp );
}
tbm tem essa forma aki em baixo mais ele pediu para usar tecnicas de divisão
public static void main ( String [ ] args ) {
String aux = JOptionPane.showInputDialog ( "Insira 5 numeros " );
int n = Integer.parseInt ( aux);
desmembramentoRegraDeDivisao ( n);
}
}
É porque você fez uma atribuição usando a variável errada.
Você usou:
n = n / 10 ;
onde deveria ter usado:
num = num / 10 ;
Estou vendo muitos documentários sobre psicopatas. Quando vi esse título “desmembrar inteiro” já pensei em algum serial killer 
/*
escreva um aplicativo que le um inteiro de 5 digitos
e desmembra o numero exemplo 42339 o programa deve impirmir
4 2 3 3 9
vc precisara usar tecnicas de divisão e resto da divisão para selecionar os digitos
*/
import javax.swing.*;
public class Exercicio5{
public static void desmembramentoRegraDeDivisao ( int n ) {
// d1 = 2 > ( 24.749 / 10.000 )
int d1 = n / 10000;
// resto = 4.749
n = n % 10000;
// d2 = 4 > ( 4.749 /1.000 )
int d2 = n /1000;
// resto = 749
n= n % 1000;
// d3 = 7 > ( 749 /100 )
int d3 = n / 100;
// resto = 49
n= n % 100;
// d4 = 4 > ( 49 / 10 )
int d4 = n/ 10;
// resto = 4;
n= n% 10;
// resto = d5 = 9;
int d5 = n;
JOptionPane.showMessageDialog ( null, " Digitos desmembrados "+d1+" "+d2+" "+d3+" "+d4+" "+d5 );
}
public static void desmembramentoPorString ( String v ) {
String resp = "";
for (int i=0; i < v.length(); i++) {
resp = resp + " " + v.charAt(i) ;
}
System.out.println( resp );
}
public static void main ( String [ ] args ) {
String aux = JOptionPane.showInputDialog ( "Insira 5 numeros " );
int n = Integer.parseInt ( aux);
desmembramentoRegraDeDivisao ( n);
}
}
valewww.