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


6. Цифры числа

☰ Теория

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

Идея решения.
Нам необходимо просто последовательно отсекать от числа последнюю цифру (сделать это можно, уменьшив число в 10 раз, применяя целочисленное деление на 10), при этом каждый раз необходимо увеличивать счетчик. 
В итоге, после того как мы отсечем все числа, счетчик будет хранить количество цифр в числе.
По другому алгоритм можно сформулировать так: пока число не равно нулю, уменьшить его в 10 раз и увеличить счетчик на 1.

число (n) счетчик
123 0
12 1
1 2
0 3
Программа будет выглядеть следующим образом:
...
static void Main()
{
    int n = Convert.ToInt32(Console.ReadLine());
    int count = 0;
    while (n != 0) 
    {
      count ++;
      n = n / 10;
    }
}
Данную программу нужно хорошо знать и понимать, так как на ее основе решаются многие другие задачи, связанные с вычислением по цифрам числа.

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

Вставьте недостающие фрагменты кода
C#
1
using System;   
2
class Program {   
3
    static void Main() {   
4
        int n = Convert.ToInt32(Console.ReadLine());   
5
        int count = 0;   
6
        while (n != 0) {   
7
            n /= 10; // краткая запись n = n / 10   
8
            count++;   
9
        }   
10
        Console.WriteLine(n + " contains " + count + " digits");   
11
    }   
12
}