Модуль: Оператор цикла с условием - while


Задача

6/21

Цифры числа

Теория Нажмите, чтобы прочитать/скрыть

Попробуем написать программу для решения следующей задачи:

Необходимо ввести число (пусть оно будет меньше 3 000 000) и определить количество цифр в нем.

Идея решения


Заведём счётчик цифр числа. Изначально счётчик равен 0. Нам необходимо просто последовательно отсекать от числа последнюю цифру (сделать это можно, уменьшив число в 10 раз, применяя целочисленное деление на 10), при этом каждый раз необходимо увеличить счетчик на 1. 
В итоге после того, как мы отсечём все цифры, в счётчике мы получим количество цифр в числе.
По-другому алгоритм можно сформулировать так:
ПОКА ЧИСЛО НЕ РАВНО НУЛЮ, УМЕНЬШИТЬ ЕГО В 10 РАЗ и УВЕЛИЧИТЬ СЧЕТЧИК НА 1.

число (n) счетчик
123 0
12 1
1 2
0 3
Программа будет выглядеть следующим образом.
var n, count: integer;
begin
    read(n);
    count := 0;
    while n <> 0 do begin
        count += 1;
        n := n div 10;
    end;
    writeln('Number - ', n, ' contains ', count, ' digits');
end.
Данную программу нужно знать наизусть, т.к. на ее основе решаются многие другие задачи, связанные с вычислением по цифрам числа.

Задача

Запустите программу. 

Посмотрите на результат ее работы.
Все ли нормально в выходной фразе?
Подумайте, как можно исправить данный недочет.