Determinen cuántos dígitos pares, impares y ceros tiene un número entero.
Respuestas a la pregunta
Respuesta:
el truco es saber que al dividir un numero entre 10 el resto es siempre el último dígito de este, en muchos lenguajes al resto se lo representa con la función "mod"
123 mod 10 = 3
5432 mod 10 = 2 y así, entonces hay varias formas de hacerlo pero yo lo hacia con un while. Mientras que el numero X sea mayor que cero obtengo el ultimo digito (que es un entero, haciendo el mod 10)
lo analizo, llevas contadores de pares, impares y ceros,
si el digito es cero (digito == 0) sumas al contador de ceros
de lo contrario si el digito es par (digito mod 10 == 0) sumas al contador de pares de lo contrario sabes que es impar :)
quedaría algo así:
int digito;
int cantCeros = 0;
int cantPAres = 0;
int cantImpares = 0;
while(num > 0){
digito = num mod 10;
if(digito == 0)
cantCeros = cantCeros +1;
else
if(digito mod 2 == 0) //si mi digito es par
cantPAres = cantPares + 1;
else
cantImpares = cantImpares + 1;
num = num / 10; // esto hace que el número quede sin su ultimo digito para ir achicando dicho numero y no caer en un bucle infinito
}
como sabrás el mod es una operación interesante y necesaria :)
básicamente sirve para saber si un número x es divisible por un número z
Explicación paso a paso:
Producto Integrador de Unidad I | Pág. 50
Explicación paso a paso: