Module: (C++) 조건이 있는 루프 문 - while


Problem

6/21

숫자 자릿수

Theory Click to read/hide

과제
숫자를 입력하고(3,000,000 미만으로 지정) 숫자의 자릿수를 결정해야 합니다.
 
솔루션 아이디어
숫자에서 마지막 숫자를 순차적으로 잘라내고(10으로 정수 나누기를 사용하여 숫자를 10배로 줄임으로써 수행할 수 있음) 카운터를 증가시켜야 할 때마다. 

결과적으로 숫자의 모든 자릿수를 잘라낸 후 카운터에 숫자가 표시됩니다.

이 알고리즘은 다음과 같이 공식화할 수 있습니다.
숫자가 0이 될 때까지 매번 10씩 줄이고 카운터를 1씩 늘립니다.
  <헤드> <몸>
프로그램은 다음과 같습니다. #include<iostream> 네임스페이스 표준 사용; 기본() { intn, 카운트; cin>> N; 카운트 = 0; 동안 (n != 0) { 카운트++; n = n / 10; } cout << "숫자-" << n<< " 포함 " << 카운트 << " 숫자';   } 이 프로그램을 마음으로 알아야 합니다. 이를 바탕으로 자릿수 계산과 관련된 다른 많은 문제가 해결됩니다.

Problem

프로그램을 실행합니다. 
그녀의 작업 결과물을 보세요.
출력 구문의 모든 것이 정상입니까?
이 문제를 어떻게 해결할 수 있는지 생각해 보십시오.
숫자(n) 카운터
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!