Java - Leer un valor entero

 
Vista:

Leer un valor entero

Publicado por Olga (1 intervención) el 03/06/2020 06:30:46
Leer un valor entero, positivo y comprobar si contiene la cifra 3.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
-1
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

Leer un valor entero

Publicado por Kabuto (1381 intervenciones) el 05/06/2020 19:12:08
Una forma de comprobar un número entero, cifra por cifra, es hacer una sucesión de módulos y divisiones entre 10.

Supongamos el entero: 456

Si hago un módulo 10, siempre me devolverá la última cifra, en este caso el 6. Ya tengo una cifra para comparar con la cifra 3, que es la que buscamos.

Como no coincide, voy a querer eliminar esa última cifra, para poder pasar a la siguiente. Para ello, lo que hago es dividir entre 10, una división entera, en la que descarto la parte decimal.
456 / 10 = 45
Ya he eliminado el 6. Ahora repito el mismo proceso con el nuevo entero. Un módulo 10 me dará ahora la cifra 5, como tampoco coincide con el 3, de nuevo la elimino dividiendo entre 10.
45 / 10 = 4

Y repito de nuevo el mismo proceso.

El proceso, que obviamente lo hago dentro de un bucle, le pondré fin cuando haya encontrado una cifra 3, o bien cuando la división del entero entre 10 me devuelva como resultado un 0, lo cuál significa que ya he agotado todas las cifras del entero.


Tras esta explicación, puedes intentar escribir tú un código. Si no te funciona o no consigues terminarlo, no importa, publícalo aquí y te ayudamos.

Si prefieres la vía fácil, pero que no te será tan útil para aprender, aquí tienes un posible código que cumple lo que hemos dicho.
Un saludo.

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
public class Busca3 {
 
	public static void main(String[] args) {
 
		Scanner teclado = new Scanner(System.in);
		System.out.print("Introduce un entero: ");
		int entero = teclado.nextInt();
		teclado.close();
 
		boolean encontrado3 = false;
		while (entero != 0 && !encontrado3) {
			//Para obtener última cifra del entero, hacemos módulo 10
			int cifra = entero % 10;
			if (cifra == 3)
				encontrado3 = true;
			else
				//Eliminamos última cifra dividiendo entre 10
				entero = entero / 10;
		}
 
		System.out.println(encontrado3?"Si contiene un 3":"No contiene un 3");
 
	}
 
}
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