Module: Instrucción de bucle con condición - while


Problem

6/21

dígitos del número

Theory Click to read/hide

Intentemos escribir un programa para resolver el siguiente problema:

Debe ingresar un número (que sea menor a 3,000,000) y determinar la cantidad de dígitos en él.

Idea de solución


Comencemos un contador de dígitos de un número. Inicialmente, el contador es 0. Solo necesitamos eliminar secuencialmente el último dígito del número (esto se puede hacer reduciendo el número 10 veces, usando la división de enteros por 10), y cada vez que necesitamos aumentar el contador por 1. 
Como resultado, después de cortar todos los dígitos, en el contador obtendremos la cantidad de dígitos en el número.
De otra manera, el algoritmo se puede formular de la siguiente manera:
HASTA QUE EL NUMERO NO SEA CERO DISMINUYELO 10 veces y AUMENTE EL CONTADOR EN 1.

El programa se verá así. var n, cuenta: entero; comenzar     leer(n);     cuenta := 0;     mientras que n <> 0 para comenzar         cuenta += 1;         n := n división 10;     fin;     writeln('Número - ', n, ' contiene ', cuenta, ' dígitos'); fin. Necesitas saber este programa de memoria, porque. sobre esta base, se resuelven muchos otros problemas relacionados con el cálculo de números por dígitos.

Problem

Ejecute el programa. 

Mira el resultado de su trabajo.
¿Está todo bien en la frase de salida?
Piensa en cómo puedes solucionar este problema.
número (n) contador
123 0
12 1
1 2
0 3
1
var n, count: integer; 
2
begin 
3
    read(n); 
4
    count := 0; 
5
    while n <> 0 do begin 
6
        count += 1; 
7
        n := n div 10; 
8
    end; 
9
    writeln('Number - ', n, ' contains ', count, ' digits'); 
10
end. 

     

Program check result

To check the solution of the problem, you need to register or log in!