Mostrar por separado las cifras de un número

Mostrar las cifras de un número separadas por espacios

Programa que muestra por separado las cifras de un número entero que se introduce por teclado. Las cifras del número se mostrarán separadas por un espacio en blanco entre ellas. 

Por ejemplo, si se introduce el número 5824

se mostrará por pantalla

5 8 2 4

Solución:

Para resolver este ejercicio lo primero que tenemos que hacer es calcular el número de cifras que tiene el número. Puedes ver cómo se calculan las cifras de un número en este ejercicio: contar las cifras de un número entero.

A continuación mediante divisiones del número entre potencias de 10 iremos obteniendo las cifras y mostrándolas por pantalla.

Con un ejemplo lo veremos más claro:

Si el número introducido es 5824

Calculamos el número de cifras que tiene, en este caso el número tiene 4 cifras.

A continuación realizamos este proceso:

Empezando dividiendo el número entre 1000 y obtenemos y mostramos la primera cifra. Comenzamos por 1000 porque el número tiene 4 cifras. Si tuviese 5 cifras tenemos que dividir por 10000 para obtener la primera cifra. En general para obtener la primera cifra de un número habrá que dividir el número entre 10^cifras-1.

5824 / 1000 -> 5 

Quitamos al número la cifra que acabamos de mostrar mediante la operación % 1000:

5824 % 1000 -> 824

Para obtener y mostrar el 8 dividimos 824 entre 100

824 / 100 -> 8 

Quitamos al número la cifra que acabamos de mostrar mediante la operación % 100:

824 % 100 -> 24 

Para obtener y mostrar el 2 dividimos 24 entre 10

24 / 10 -> 2

Quitamos al número la cifra que acabamos de mostrar mediante la operación % 10:

24 % 10 -> 4

Para obtener y mostrar el 4 dividimos 4 entre 1

4 / 1 -> 4

Si el número tiene 4 cifras para obtenerlas todas hemos realizado 4 divisiones del número:

5824 / 1000 -> 5 

824 / 100 -> 8

24 / 10 -> 2

4 / 1 -> 4

La primera división del número se realiza dividiendo entre 10^cifras-1 y la ultima se realiza dividiendo entre 10^0. 

Se puede hacer un bucle for cuya variable comience con el valor inicial cifras-1 y en cada iteración se decrementa la variable hasta que llegue a cero. Esta variable será la que utilicemos para calcular la potencia de 10 necesaria en cada caso.


/*
 * Programa que lea un entero N y muestre por separado cada
 * una de sus cifras. 
 */
 
import java.util.Scanner;

public class MostrarCifrasNumero {

    public static void main(String[] args) {
        int num, numCifras, aux, i, digito;
        Scanner sc = new Scanner(System.in);
        do {
            System.out.print("Introduce numero entero >0: ");
            num = sc.nextInt();
        } while (num <= 0);

        //tenemos que calcular el número de cifras que tiene el número
        aux = num;     // copiamos el número en una variable auxiliar
        numCifras = 0; // numCifras es un contador. Contendrá el número de cifras que tiene el número             

        //para contar las cifras dividimos el número entre 10. El resultado de esa división
        //se vuelve a dividir entre 10, etc. Las divisiones acaban cuando el resultado es cero
        //En cada división se suma 1 al contador.
        while (aux != 0) {
            aux = aux / 10;
            numCifras++;
        }

        for (i = numCifras - 1; i >= 0; i--) {
            digito = num / (int) Math.pow(10, i); // obtengo la primera cifra de num
            System.out.print(digito + " ");       //  se muestra la cifra por pantalla
            num = num % (int) Math.pow(10, i);    // quito esa cifra a num y se repite el proceso
        }
    }
}

No hay comentarios:

Publicar un comentario