Module: (Java) 조건이 있는 루프 문 - 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
import java.util.Scanner;  
2


                                                   
3
public class Main  
4
{  
5
    public static void main(String[] args) {  
6
        Scanner in = new Scanner(System.in);  
7
        int n, count;  
8
        n = in.nextInt();  
9
        count = 0;  
10
        while (n != 0)  
11
        {  
12
            count ++;  
13
            n = n / 10;  
14
        }  
15
        System.out.println("Number "+ n+ " contains " + count + " digits");  
16
    }  
17
}  

     

Program check result

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