Código del ejercicio:
Definición de los códigos del ejercicio:
import java.util.Scanner; --> Importación explícita de Scanner.Scanner sc = new Scanner(System.in); --> objeto de Scanner con nombre sc.
Scanner --> clase Scanner nos permite ingresar datos por teclado.
new --> palabra reservada que instancia un objeto de la clase Scanner.
System.in --> parámetro que indica de donde proceden los datos, en este caso del teclado.
System.out.println() --> imprime el texto en la consola y el cursor permanece al comienzo de la siguiente línea en la consola.
int --> dato entero de 32 bits.
nextInt() --> lee un número entero desde consola (teclado).
while --> el ciclo while recorre un bloque de código siempre que una condición específica sea verdadera.
<= --> el operador menor o igual ( <= ) devuelve true si el operando izquierdo es menor o igual que el operando derecho, y en false caso contrario.
> --> el operador mayor que ( > ) devuelve true si el operando izquierdo es mayor que el operando derecho.
% --> el operador de modulo ( % ) devuelve el resto de la división.
== --> el operador de igualdad ( == ) regresa true si sus operandos son iguales, false en caso contrario.
if --> use if para especificar un bloque de código que se ejecutará, si una condición especificada es verdadera.
++ --> el operador de incremento ( ++ ) incrementa (suma uno a) su operando y devuelve un valor.
+ --> el operador ( + ) concatena variables de cadena.
Explicación del Código:
Este programa solicita al usuario un número entero y cuenta cuántas veces aparece cada dígito (del 0 al 9). Al finalizar, muestra únicamente los dígitos que están presentes en el número junto con la cantidad de veces que se repiten.
1. Declaración de variables
- int c = 0; → Guarda el dígito que se está buscando. Empieza en 0 y termina en 9.
- int aux = 0; → Guarda una copia del número para poder recorrerlo sin modificar el original.
- int r = 0; → Almacena el último dígito obtenido del número.
- int fd = 0; → Cuenta cuántas veces aparece el dígito que se está buscando.
- int n; → Guarda el número ingresado por el usuario.
2. Crear el Scanner
Se crea un objeto Scanner para poder leer el número que escribe el usuario desde el teclado.
3. Solicitar el número
Se muestra el mensaje "Ingrese un número:" y luego el programa almacena el valor introducido en la variable n.
4. Recorrer los dígitos del 0 al 9
El ciclo while(c <= 9) revisa uno por uno todos los dígitos posibles:
- 0
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
Para cada uno de ellos, el programa contará cuántas veces aparece dentro del número.
5. Copiar el número
Antes de comenzar el conteo, el programa hace:
- aux = n; → Copia el número original.
- fd = 0; → Reinicia el contador de frecuencia.
Esto permite volver a recorrer el número desde el principio para buscar otro dígito.
6. Recorrer cada cifra del número
El ciclo while(aux > 0) analiza el número cifra por cifra hasta que ya no queden dígitos.
7. Obtener el último dígito
La instrucción:
r = aux % 10;
Obtiene el último dígito del número.
Ejemplo:
- 4825 → obtiene 5.
- 731 → obtiene 1.
- 90 → obtiene 0.
8. Comparar el dígito
Si el último dígito es igual al valor almacenado en c, significa que se encontró una coincidencia.
Entonces se ejecuta:
fd++;
Esto aumenta en uno el contador de frecuencia.
9. Eliminar el último dígito
La instrucción:
aux = (aux - r) / 10;
Elimina el último dígito para continuar revisando el siguiente.
Ejemplo:
- 4825 → 482
- 482 → 48
- 48 → 4
- 4 → 0
10. Mostrar la frecuencia
Cuando termina de revisar todo el número, el programa verifica:
if(fd > 0)
Si el contador es mayor que cero, significa que ese dígito apareció en el número y se muestra su frecuencia.
Ejemplo:
La frecuencia de 2 es: 3 La frecuencia de 5 es: 1
11. Pasar al siguiente dígito
La instrucción:
c++;
Hace que el programa busque el siguiente dígito hasta llegar al 9.
Resumen del funcionamiento
- Se ingresa un número.
- El programa busca cuántas veces aparece el 0.
- Luego cuenta el 1.
- Después el 2.
- Continúa con todos los dígitos hasta el 9.
- Finalmente muestra únicamente los dígitos que aparecen y su cantidad de repeticiones.