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