Java - Digitos de un numero en un Arreglo

 
Vista:
sin imagen de perfil

Digitos de un numero en un Arreglo

Publicado por oscar (6 intervenciones) el 04/04/2017 01:23:32
Buenas tardes, tengo el siguiente problema:

Tengo que ingresar un numero por ejemplo: 5436; debo descomponer este numero y que ingresen de esta manera al arreglo:

5 4 3 6

He tratado de hacerlo pero me sale al revés

6345

Me podrian decir que es lo que me falta para poder hacerlo este es mi codigo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
public class Ejercicio1 {
    private int pila[];
    private int tope;
 
    public void creaPila(int n){
     pila=new int[n]; tope=-1;
    }
        public void llenaPila(int valor){
        int indMax=pila.length-1;int digito;
        if(tope<indMax){
            while(valor>0){
            tope++;
            digito=valor%10;
            pila[tope]=digito;
            valor=valor/10;}
        }
    }
 
public int eliminaPila(){
        int valor=0;
        if (tope >-1){
            valor=pila[tope];
            tope--;
        }
        return valor;
    }
     public String muestraResultado(){
        String cadena="";
        cadena="el ultimo digito es ";
        cadena=cadena+eliminaPila()+"\n";
        while(tope>0){
            eliminaPila();
        }
        cadena=cadena+"el primer digito es ";
        cadena=cadena+eliminaPila()+"\n";
        return cadena;
    }
      public String muestraPila(){
        String cadena="";
          if(tope>-1){
             for (int i=0;i<=tope;i++)
             cadena=cadena+pila[i]+" ";
            }
            return cadena;
         }
}

esto es lo que me resulta:

Captura

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 349
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Digitos de un numero en un Arreglo

Publicado por Andrés (340 intervenciones) el 04/04/2017 07:01:23
Es normal porque estas usando una pila, puedes hacer una de dos cosas:

i) Cambiar la pila por una cola
ii) En vez de comenzar a ingresar los dígitos por el inicio de la cadena 5436:, comienza a ingresarlos por el final (recorrer la cadena al revés), es decir, ingresa el 6, luego el 3, el 4 y finalmente el 5.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Digitos de un numero en un Arreglo

Publicado por Renzo (232 intervenciones) el 04/04/2017 15:55:30
Hola

1ro. no veo donde usas la pila, el nombre de la variable que se usa no determina su comportamiento. Lo que veo es solo un simple arreglo.
2do. el problema está en la línea : " cadena=cadena+pila[i]+" ";"
si lo vez, esta poniendo siempre a la derecha cada digito que tienes la izquirda.
Aunque tu arreglo es [5,7,8,9] al concatenar lo hacer así

1ra iteración : cadena : "5"
2da iteración : cadena : "75"
3ra iteración : cadena : "875"
4ta iteración : cadena : "9875"

la solución sería concatenar así:


cadena=pila[i]+cadena+" ";

Saludos

Renzo

La pila esta determinada por el comportamiento del arreglo, así como las colas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar