Principiante · while + división

Contar los dígitos

Lee un entero e imprime cuántos dígitos tiene. Este es el bucle que enseña % 10 y / 10 — las dos operaciones detrás de todo problema de manipulación de dígitos.

Problema

Entrada: un entero n (−10⁹ ≤ n ≤ 10⁹).

Salida: el número de dígitos de n (el signo menos no cuenta).

Ejemplo:

EntradaSalida
71
20484
01

Tu solución

Program.cs — tu solución
Entrada personalizada para "Probar mi entrada"

La corrección se ejecuta por completo en tu navegador contra pruebas ocultas. Tu código se guarda localmente mientras escribes. Ctrl+Enter corrige.

¿Atascado? Pistas

Pista 1 — las dos operaciones

n % 10 es el último dígito; n / 10 es el número sin él (¡división entera!). 2048 → 204 → 20 → 2 → 0 — cuenta los pasos hasta cero.

Pista 2 — las dos trampas

Trampa 1: while (n > 0) nunca entra con n = 0 — imprimirías 0 dígitos, pero 0 tiene uno. Trampa 2: la entrada negativa loopea para siempre con n > 0… haz Math.Abs(n) primero.

Solución (¡inténtalo primero!)
int n = Math.Abs(int.Parse(Console.ReadLine()));

int digitos = 0;
do
{
    digitos++;
    n = n / 10;
} while (n > 0);

Console.WriteLine(digitos);
// el atajo: ToString() y deja que Length cuente
int n = int.Parse(Console.ReadLine());
Console.WriteLine(Math.Abs(n).ToString().Length);

El do-while resuelve n = 0 gratis — el cuerpo corre una vez antes de comprobar la condición. Has terminado el primer bloque del set: vuelve a la lista o lee por qué la división entera hace funcionar el bucle.