Java - Numero Investido JAVA

 
Vista:

Numero Investido JAVA

Publicado por JC (3 intervenciones) el 10/04/2020 06:56:34
Buenas noches,

Alguien me podria asesorar de como puedo inverir un numero que ya digite dentro de un proyecto en JAVA, hasta el momento lo llevo de esta forma

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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
package Second_Activity;
 
import java.util.Scanner;
 
import javax.swing.JOptionPane;
 
public class Calculator
{
	private static Scanner teclado;
	public static void main(String[] ar)
	{
	   teclado = new Scanner(System.in);
	   int numero;
	   System.out.print("Ingrese un numero:");
	      numero = teclado.nextInt();
	      	System.out.println("El numero es:" + numero);
	      		if (numero < 10)
	      			{
	      				System.out.println("La cantidad de digitos es: 1");
	      			}
	      		else
	      			if (numero < 100)
	      			{
	      				System.out.println("La cantidad de digitos es: 2");
	      			}
	      		else
	      			if (numero < 1000)
	      			{
	      				System.out.println("La cantidad de digitos es: 3");
	      			}
	      		else
	      			if (numero < 10000)
	      			{
	      				System.out.println("La cantidad de digitos es: 4");
	      			}
	      		else
	      			if (numero < 100000)
	      			{
	      				System.out.println("La cantidad de digitos es: 5");
	      			}
	      		else
	      			if (numero < 1000000)
	      			{
	      				System.out.println("La cantidad de digitos es: 6");
	      			}
	      		else
	      			if (numero < 10000000)
	      			{
	      				System.out.println("La cantidad de digitos es: 7");
	      			}
	      		else
	      			if (numero < 100000000)
	      			{
	      				System.out.println("La cantidad de digitos es: 8");
	      			}
	      		else
	      			if (numero < 1000000000)
	      			{
	      				System.out.println("La cantidad de digitos es: 9");
	      			}
	      		System.out.print("El numero investido es:");
	}
}

Agradezco su colaboracion
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
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Numero Investido JAVA

Publicado por Kabuto (1381 intervenciones) el 10/04/2020 13:03:04
Hay dos formas de invertir las cifras un valor int.

Una la más sencilla, es transformar ese int en una cadena String.
Luego basta con recorrer esa cadena de forma inversa, desde el final hasta el principio, y mostrar cada carácter en pantalla.

La otra forma, un poco más difícil de entender el proceso, es dentro de un bucle hacer módulo y divisiones entre 10 hasta que el numero quede reducido a 0

Supón la cifra 123.

Si hacemos modulo entre 10, obtenemos la última cifra:
123 % 10 = 3

Ahora hacemos una división ENTERA entre 10. Una división entera es que vamos a desechar cualquier valor decimal obtenida y nos quedaremos solo con la parte entera.
Si dividimos entre 10:
123 / 10 = 12,3
Como solo queremos la parte entera, nos quedamos con el valor 12

Y ahora repetimos el proceso de hacer primero módulo, y luego división.
En pantalla ya tendríamos el 3 obtenido antes, ahora obtenemos el 2
12 % 10 = 2

12 / 10 = 1,2

Ahora obtenemos el 1:
1 % 10 = 1

1 / 10 = 0
Como tenemos 0, el proceso termina.

Así el 123, hemos ido obteniendo el 3, el 2 y luego 1 -> 321

Te dejo un programa de prueba, con dos métodos para cada proceso de inversión.
Pregunta lo que no entiendas o si necesitas completar algo más.

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
47
48
49
50
public class Invertir {
 
	public static void main(String[] args) {
		Scanner teclado = new Scanner(System.in);
 
		System.out.print("Introduzca número: ");
		int numero = teclado.nextInt();
		teclado.close();
 
		System.out.println("\nInvertir cifra transformando a String...");
		inversion1(numero);
 
		System.out.println("\nInvertir cifra con modulos y divisiones por 10...");
		inversion2(numero);
 
	}
 
	/*
	 * Invertir transformando en String
	 */
	static void inversion1(int num) {
 
		//Transformamos el int a una cadena String
		String cadena = String.valueOf(num);
 
		//Recorremos los caracteres de forma inversa y los mostramos en pantalla
		for (int i = cadena.length() - 1; i >= 0; i--)
			System.out.print(cadena.charAt(i));
	}
 
	/*
	 * Invertir con modulo -> % y dividiendo entre 10 sucesivamente
	 */
	static void inversion2(int num) {
 
		while (num != 0) {
 
			//Modulo 10 nos devuelve la última cifra del numero y la mostramos en pantalla
			System.out.print(num % 10);
 
			//Haciendo una division ENTERA entre 10, eliminamos la última cifra
			//que ya hemos mostrado en pantalla.
			num = num / 10;
 
			//El proceso se repite hasta que num sea 0,
			//es decir, ya no quedan cifras para mostrar
		}
	}
 
}

En pantalla tenemos este resultado:
1
2
3
4
5
6
Introduzca número: 2389
 
Invertir cifra transformando a String...
9832
Invertir cifra con modulos y divisiones por 10...
9832
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
Imágen de perfil de Rodrigo
Val: 2.041
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Numero Investido JAVA

Publicado por Rodrigo (623 intervenciones) el 10/04/2020 13:43:40
Aqui otra opcion, recursiva

1
2
3
4
5
6
private static void inversion3(int n) {
   if(n > 0) {
        System.out.print(n % 10);
        inversion3(n/10);
   }
}

No imprime nada si el numero ingresado es 0 o negativo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Numero Investido JAVA

Publicado por JC (3 intervenciones) el 10/04/2020 17:27:22
Entendido de como realizar la inversión de los numero.

Pero me podrías mostrar donde se incluiría alguna de las dos formas que me indicas dentro de lo que ya llevo ya que el resultado de lo que estoy realizando es el siguiente:

Introduzca un numero: 12345
El numero es: 12345
La cantidad de digitos es: 5
El numero invertido es: xxxxx (en esta parte debe dar el numeor invertido

Agradezco tu colaboracion
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
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Numero Investido JAVA

Publicado por Kabuto (1381 intervenciones) el 10/04/2020 18:26:16
Te hemos dado tres métodos:

1
2
3
4
5
6
7
static void inversion1(int num) {
 
    String cadena = String.valueOf(num);
 
    for (int i = cadena.length() - 1; i >= 0; i--)
        System.out.print(cadena.charAt(i));
}

1
2
3
4
5
6
7
8
9
static void inversion2(int num) {
 
    while (num != 0) {
 
        System.out.print(num % 10);
 
        num = num / 10;
    }
}

1
2
3
4
5
6
private static void inversion3(int n) {
   if(n > 0) {
        System.out.print(n % 10);
        inversion3(n/10);
   }
}

Elije uno, cópialo en tu código y lo invocas allá donde quieras que se muestre el número invertido:

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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
public class Calculator
{
	private static Scanner teclado;
	public static void main(String[] ar)
	{
	   teclado = new Scanner(System.in);
	   int numero;
	   System.out.print("Ingrese un numero:");
	      numero = teclado.nextInt();
	      	System.out.println("El numero es:" + numero);
	      		if (numero < 10)
	      			{
	      				System.out.println("La cantidad de digitos es: 1");
	      			}
	      		else
	      			if (numero < 100)
	      			{
	      				System.out.println("La cantidad de digitos es: 2");
	      			}
	      		else
	      			if (numero < 1000)
	      			{
	      				System.out.println("La cantidad de digitos es: 3");
	      			}
	      		else
	      			if (numero < 10000)
	      			{
	      				System.out.println("La cantidad de digitos es: 4");
	      			}
	      		else
	      			if (numero < 100000)
	      			{
	      				System.out.println("La cantidad de digitos es: 5");
	      			}
	      		else
	      			if (numero < 1000000)
	      			{
	      				System.out.println("La cantidad de digitos es: 6");
	      			}
	      		else
	      			if (numero < 10000000)
	      			{
	      				System.out.println("La cantidad de digitos es: 7");
	      			}
	      		else
	      			if (numero < 100000000)
	      			{
	      				System.out.println("La cantidad de digitos es: 8");
	      			}
	      		else
	      			if (numero < 1000000000)
	      			{
	      				System.out.println("La cantidad de digitos es: 9");
	      			}
	      		System.out.print("El numero investido es:");
			inversion3(numero);
	}
 
	private static void inversion3(int n) {
  		if(n > 0) {
        		System.out.print(n % 10);
        		inversion3(n/10);
   		}
	}
}
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
Imágen de perfil de Rodrigo
Val: 2.041
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Numero Investido JAVA

Publicado por Rodrigo (623 intervenciones) el 10/04/2020 18:35:50
El numero de digitos lo puedes hacer, en vez de una sucesion de if, como lo tienes ahora, con una funcion que divida sucesivamente por 10, hasta que llegue a 0, contando uno mas por cada vuelta. Tambien se puede hacer recursivo.
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