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


Problem

6/20

숫자 자릿수

Theory Click to read/hide

다음 문제를 해결하는 프로그램을 작성해 봅시다. 숫자를 입력해야 합니다. 그리고 그 안에 있는 자릿수를 결정합니다.

솔루션 아이디어
숫자에서 마지막 숫자를 순차적으로 잘라내고(10으로 정수 나누기를 사용하여 숫자를 10배로 줄임으로써 수행할 수 있음) 카운터를 증가시켜야 할 때마다. 
결과적으로 모든 숫자를 잘라낸 후 카운터는 숫자의 자릿수를 저장합니다.
다른 방식으로 알고리즘은 다음과 같이 공식화할 수 있습니다. 숫자가 0이 아닌 동안 10배로 줄이고 카운터를 1씩 늘립니다.

<헤드> <몸> 프로그램은 다음과 같습니다. <예비> <코드>... 정적 무효 메인() { int n = Convert.ToInt32(Console.ReadLine()); 정수 수 = 0; 동안 (n != 0) { 카운트++; n = n / 10; } } 자릿수 계산과 관련된 다른 많은 작업이 있기 때문에 이 프로그램을 잘 알고 이해해야 합니다. 숫자.

Problem

프로그램을 실행합니다. 
그녀의 작업 결과를 보세요. 출력 문구의 모든 것이 괜찮습니까? 이 결함을 어떻게 고칠 수 있을지 생각해 보세요.
숫자(n) 카운터
123 0
12 1
1 2
0 3
1
using System;   
2
class Program {   
3
    static void Main() {   
4
        int n = Convert.ToInt32(Console.ReadLine());   
5
        int count = 0;   
6
        while (n != 0) {   
7
            n /= 10; // краткая запись n = n / 10   
8
            count++;   
9
        }   
10
        Console.WriteLine(n + " contains " + count + " digits");   
11
    }   
12
}   

     

Program check result

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