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


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

☰ Теория

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

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

Идея решения


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

число (n) счетчик
123 0
12 1
1 2
0 3
Программа будет выглядеть следующим образом.
#include<iostream>
using namespace std;
main()
{
int n, count;
cin >> n;
count = 0;
while (n != 0) 
  {
  count ++;
  n = n / 10;
  }
cout << "Number - " <<n<< " contains " << count << " digits";  
}
Данную программу нужно знать наизусть, т.к. на ее основе решаются многие другие задачи, связанные с вычислением по цифрам числа.

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

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

Вставьте недостающие фрагменты кода
Java
1
import java.util.Scanner;  
2


                                                   
3
public class Main  
4
{  
5
    public static void main(String[] args) {  
6
        Scanner in = new Scanner(System.in);  
7
        int n, count;  
8
        n = in.nextInt();  
9
        count = 0;  
10
        while (n != 0)  
11
        {  
12
            count ++;  
13
            n = n / 10;  
14
        }  
15
        System.out.println("Number "+ n+ " contains " + count + " digits");  
16
    }  
17
}