본문 바로가기

Baekjoon/C++

[C++][BOJ/백준] 11170 0의 개수

 

 

Baekjoon Online Judge

 

11170번: 0의 개수

N부터 M까지의 수들을 종이에 적었을 때 종이에 적힌 0들을 세는 프로그램을 작성하라. 예를 들어, N, M이 각각 0, 10일 때 0을 세면 0에 하나, 10에 하나가 있으므로 답은 2이다.

www.acmicpc.net

 

 

[문제]

N부터 M까지의 수들을 종이에 적었을 때 종이에 적힌 0들을 세는 프로그램을 작성하라.

예를 들어, N, M이 각각 0, 10일 때 0을 세면 0에 하나, 10에 하나가 있으므로 답은 2이다.

 

 

[입력]

첫 번째 줄에 테스트 케이스의 수 T가 주어진다.

각 줄에는 N과 M이 주어진다.

  • 1 ≤ T ≤ 20
  • 0 ≤ N ≤ M ≤ 1,000,000

[출력]

각각의 테스트 케이스마다 N부터 M까지의 0의 개수를 출력한다.

 

 


 

[코드]

#include <iostream>
using namespace std;

int main()
{
    int T, N, M;

    cin >> T;

    for (int i = 0; i < T; i++)
    {
        cin >> N >> M;

        int sum = 0;

        for (int j = N; j <= M; j++)
        {
            if (j == 0)
                sum++;

            int tmp = j;

            while (tmp > 0)
            {
                if (tmp % 10 == 0)
                    sum++;

                tmp /= 10;
            }
        }

        cout << sum << '\n';
    }

    return 0;
}

while문에서 j를 그대로 사용하지 말고 tmp 변수처럼

새로운 변수에 j의 값을 대입하여 사용해야 한다.