Invertir las cifras de un número

Cómo invertir las cifras de un número en Java

Programa para invertir el orden de las cifras de un número. Se introduce un número entero positivo por teclado y el programa modifica el número invirtiendo el orden de sus cifras.

Si por ejemplo se introduce el número N = 1234

El programa lo transformará invirtiendo el orden de sus cifras. El nuevo valor de N será 4321

Solución:

Para invertir las cifras de un número podemos realizar este proceso:

Si por ejemplo el número introducido es N = 1234 

Creamos una variable que contendrá el número modificado. Inicialmente el valor de esta variable es cero.

nuevoNumero = 0

Obtenemos la última cifra del número mediante el operador % resto de la división:

1234 % 10 -> 4

Multiplicamos por 10 el valor de nuevoNumero y sumamos esta cifra

nuevoNumero = nuevoNumero * 10 + cifra

nuevoNumero = 0 * 10 + 4 -> 4

Quitamos a N el 4 dividiendo N / 10

1234 / 10 -> 123

Y se repite de nuevo el proceso.

Obtenemos la última cifra:

123 % 10 -> 3

Multiplicamos por 10 el valor de nuevoNumero y sumamos esta cifra

nuevoNumero = nuevoNumero * 10 + cifra

nuevoNumero = 4 * 10 + 3 -> 43

Quitamos a N el 3 dividiendo N / 10

123 / 10 -> 12

Repetimos el proceso.

Obtenemos la última cifra:

12 % 10 -> 2

Multiplicamos por 10 el valor de nuevoNumero y sumamos esta cifra

nuevoNumero = nuevoNumero * 10 + cifra

nuevoNumero = 43 * 10 + 2 -> 432

Quitamos a N el 2 dividiendo N / 10

12 / 10 -> 1

Repetimos el proceso.

Obtenemos el 1:

1 % 10 -> 1

Multiplicamos por 10 el valor de nuevoNumero y sumamos esta cifra

nuevoNumero = nuevoNumero * 10 + cifra

nuevoNumero = 432 * 10 + 1 -> 4321

Quitamos a N el 1 dividiendo N / 10

1 / 10 -> 0

El proceso termina cuando obtenemos cero en la división. Esto significa que al número ya no le quedan más cifras.

En la variable nuevoNumero tenemos el resultado del proceso.

Solo nos queda asignar el valor de nuevoNumero a N para que el número original se transforme en el número con sus cifras invertidas.


/*
 * Transformar un número invirtiendo el orden de sus cifras
 */
import java.util.Scanner;

public class InvertirNumero {

    public static void main(String[] args) {
        int numero, cifra, nuevoNumero;
        Scanner sc = new Scanner(System.in);
        
        do { //introducir un número positivo
            System.out.print("Introduce un numero: ");
            numero = sc.nextInt();
        } while (numero <= 0);
        
        nuevoNumero = 0; //esta variable contendrá el número con las cifras invertidas
        
        while (numero != 0) {        
            cifra = numero % 10;     // obtengo la ultima cifra
            numero = numero / 10;    // se la quito al número
            nuevoNumero = nuevoNumero * 10 + cifra; // se la añado al nuevo número                                
        }
        
        numero = nuevoNumero;
        
        System.out.println("Número con las cifras invertidas :" + numero);
    }
}

No hay comentarios:

Publicar un comentario