Java - Digitos de un numero en un Arreglo

   
Vista:

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

Digitos de un numero en un Arreglo

Publicado por Andrés andres.mella.romero@gmail.com (339 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 nevermindman@gmail.com (211 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
Revisar política de publicidad