Module: 조건이 있는 루프 문 - while


Problem

6/21

숫자 자릿수

Theory Click to read/hide

다음 문제를 해결하는 프로그램을 작성해 봅시다.

숫자를 입력하고(3,000,000 미만) 숫자의 자릿수를 결정해야 합니다.

솔루션 아이디어


숫자의 자릿수 카운터를 시작합시다. 처음에 카운터는 0입니다. 숫자에서 마지막 숫자를 순차적으로 잘라내면 됩니다(이는 정수 나누기를 10으로 사용하여 숫자를 10배 줄임으로써 수행할 수 있음). 1. 
결과적으로 모든 자릿수를 잘라낸 후 카운터에서 숫자의 자릿수를 얻습니다.
다른 방법으로 알고리즘은 다음과 같이 공식화할 수 있습니다.
숫자가 0이 될 때까지 10번 줄이고 카운터를 1 늘립니다.

<헤드> <몸> 프로그램은 다음과 같습니다. <예비> var n, 개수: 정수; 시작하다     읽기(엔);     카운트 := 0;     n <> 시작하려면 0         카운트 += 1;         n := n div 10;     끝;     writeln('Number - ', n, ' contains ', count, ' digits'); 끝. 이 프로그램을 마음으로 알아야 합니다. 이를 바탕으로 자릿수 계산과 관련된 다른 많은 문제가 해결됩니다.

Problem

프로그램을 실행합니다. 

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