Números que contengan un cero

21/Oct/2019 Java 1 Comentario
Programación en Java

¿Podemos listar todos los números que contengan un cero desde el 1 al 100 con Java sin utilizar ninguna función de manejo de cadenas y solo utilizando operaciones matemáticas? Es una de las preguntas que nos hacíais en los comentarios de un artículo y que seguro más de uno está dándole vueltas a como resolverlo.

Y es que una de las cosas que se nos puede venir a la cabeza con Java es utilizar la función .indexOf() sobre una cadena, es decir, convertiríamos primero el número en cadena, y buscaríamos si esta contiene el carácter 0 dentro de ella. Si bien, en este caso, nos vamos a apoyar sobre funciones matemáticas para averiguar si el número contiene ese cero.

Pero lo primero será iterar sobre los 100 primeros números. Esto es algo realmente sencillo, y para ello un bucle for nos va a ayudar.

for (int x=1;x<=100;x++) {
  ...
}

Ahora vamos con la operación matemática en Java. Si pensamos en los números que contengan un cero desde el 1 al 100 vemos que estos son los primeros de las decenas, es decir, 10, 20, 30,… así hasta el primero de las centenas, el 100. ¿Qué tienen estos números en común? Pues que si los dividimos por 10 su resto va a ser de 0.

Así que podemos utilizar el operador % que es el operador que en Java nos ayuda a devolvernos el resto de la división. De esta manera chequeamos si el número dividido por 10 nos devuelve como resto un 0.

if (x%10 == 0) { ... }

Ya solo nos quedará el insertar la condición dentro del bucle para poder obtener todos los números que contengan un cero desde el 1 al 100 por consola con Java.

for (int x=1;x<=100;x++) {
  if (x%10 == 0)
    System.out.println(x);
}

Espero que os haya servido de utilidad. Ahora la pregunta sería, ¿se te ocurre otra forma en Java de poder realizarlo sin convertirlo a cadenas o utilizar el operador de módulo?

Vídeos sobre Java


Un comentario en “Números que contengan un cero”

Víctor Cuervo

Carlos Alberto Varela

Buen aporte. Suponiendo el caso que solo fuera necesario los números enteros positivos menores o iguales a 100 que contengan un cero también se podría usar un ciclo con avance de 10 en 10, así:

for (int x=0;x<=100;x+=10)
System.out.println(x);

Pero como siempre,  es mejor generalizar.

 

¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.