Module: 条件付きループ文 - while


Problem

6/20

数字の桁

Theory Click to read/hide

次の問題を解決するプログラムを書いてみましょう: 数値を入力する必要がありますその中の桁数を決定します。

ソリューションのアイデア
数値の最後の桁を順番に切り取るだけです (これは、整数の 10 による除算を使用して数値を 10 倍減らすことで実行できます)。そのたびにカウンターを増やす必要があります。
その結果、すべての数字を切り捨てた後、カウンターは数字の桁数を格納します。
別の方法として、アルゴリズムは次のように定式化できます:  数値がゼロに等しくない場合、数値を 10 倍減らし、カウンターを 1 増やします。

<頭> 数値 (n) <本体> プログラムは次のようになります: <プレ> ... 静的 void Main() { int n = Convert.ToInt32(Console.ReadLine()); int カウント = 0; ながら (n != 0) { カウント++; n = n / 10; } } の桁による計算に関連するタスクは他にもたくさんあるので、このプログラムをよく知って理解する必要があります。番号。

Problem

プログラムを実行します。 
彼女の作業の結果を見てください。 出力されたフレーズですべて問題ありませんか? この欠陥を修正する方法を考えてください。
カウンター
123 0
12 1
1 2
0 3
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
}   

     

Program check result

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