Module: (C++) 条件付きループ ステートメント - while


Problem

6/21

数字の桁

Theory Click to read/hide

タスク
数値を入力し (3,000,000 未満にする)、その桁数を決定する必要があります。
 
解決策のアイデア
数値の最後の桁を順番に切り取るだけです (これは、整数の 10 による除算を使用して数値を 10 倍減らすことで実行できます)。そのたびにカウンターを増やす必要があります。

その結果、番号の桁をすべて切り取った後、カウンターで番号を取得する
ことになります。
このアルゴリズムは次のように定式化できます。
数値が 0 になるまで、数値を 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
#include<iostream>          
2
using namespace std;        
3
main()  {          
4
  int n, count;          
5
  cin >> n;          
6
  count = 0;          
7
  while (n != 0)           
8
  {          
9
     count ++;          
10
     n = n / 10;          
11
  }          
12
  cout << "Number " << n << " contains " << count << " digits";         
13
}          

     

Program check result

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