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


Problem

6/21

数字の桁

Theory Click to read/hide

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

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

解決策のアイデア


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

<頭> 数値 (n) カウンター <本体> プログラムは次のようになります。 <プレ> var n、カウント: 整数; 始める    読み取り (n);    カウント:= 0;     while n <>; 0で開始        カウント += 1;         n := n div 10;    終わり;     writeln('Number - ', n, ' には ', count, ' 桁' が含まれます); 終わり。 このプログラムを暗記する必要があるからです。これに基づいて、桁による数値の計算に関連する他の多くの問題が解決されます。

Problem

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

彼女の仕事の成果を見て
ください。 出力されたフレーズは大丈夫ですか
か? この問題を解決する方法を考えてください。
123 0
12 1
1 2
0 3
1
var n, count: integer; 
2
begin 
3
    read(n); 
4
    count := 0; 
5
    while n <> 0 do begin 
6
        count += 1; 
7
        n := n div 10; 
8
    end; 
9
    writeln('Number - ', n, ' contains ', count, ' digits'); 
10
end. 

     

Program check result

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