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


Problem

6/21

数字の桁

Theory Click to read/hide

次の問題を解決するプログラムを書いてみましょう。

数値を入力する必要があります (3,000,000 未満にして、その桁数を決定します)。

解決策のアイデア


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

<頭> 数値 (n) カウンター <本体> プログラムは次のようになります。 <プレ> <コード>#include 名前空間 std を使用します。 主要() { intn、カウント; シン>> n; カウント = 0; ながら (n != 0) { カウント++; n = n / 10; } cout << 「番号-」 <<n<< " " を含む<<カウント << "数字";   } このプログラムを暗記する必要があるからです。これに基づいて、桁による数値の計算に関連する他の多くの問題が解決されます。

Problem

プログラムを実行します。

彼女の仕事の成果を見て
ください。 出力フレーズは大丈夫ですか。
この問題を解決する方法を考えてください。
123 0
12 1
1 2
0 3
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
}  

     

Program check result

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