본문 바로가기

백준/C++

[Baekjoon/C++] 나누기 1075번

Baekjoon Online Judge

문제로 이동

 

문제

두 정수 N과 F가 주어진다. 지민이는 정수 N의 가장 뒤 두 자리를 적절히 바꿔서 N을 F로 나누어 떨어지게 만들려고 한다. 만약 가능한 것이 여러 가지이면, 뒤 두 자리를 가능하면 작게 만들려고 한다.

예를 들어, N=275이고, F=5이면, 답은 00이다. 200이 5로 나누어 떨어지기 때문이다. N=1021이고, F=11이면, 정답은 01인데, 1001이 11로 나누어 떨어지기 때문이다.

 

입력

첫째 줄에 N, 둘째 줄에 F가 주어진다. N은 100보다 크거나 같고, 2,000,000,000보다 작거나 같은 자연수이다. F는 100보다 작거나 같은 자연수이다.

 

출력

첫째 줄에 마지막 두 자리를 모두 출력한다. 한자리이면 앞에 0을 추가해서 두 자리로 만들어야 한다.

 


예제 입력 예제 출력
1000
3
02
2000000000
100
00
23442
75
00
428392
17
15
32442
99
72

풀이

#include <iostream>
using namespace std;

int main() {
    int N, F;
    cin >> N >> F;

    int num;
    for (int i = 0; i < 100; i++) {
        // N의 뒤 두 자리수를 변경하면서 F로 나누어 떨어지는 수 찾기
        num = (N / 100) * 100 + i;

        if (num % F == 0) {
            num = i;
            break;
        }
    }

    // 출력
    if (num < 10)
        printf("0%d\n", num);
    else
        printf("%d", num);

    return 0;
}

일단 (N / 100) * 100을 통해 입력한 숫자의 뒤 두자리 숫자를 00으로 초기화했다. 그리고 이 숫자를 1씩 증가시키면서 F로 나누어 떨어지는 수를 찾았다.

'백준 > C++' 카테고리의 다른 글

[Baekjoon/C++] 하얀 칸 1100번  (0) 2022.04.21
[Baekjoon/C++] 저항 1076번  (0) 2022.04.21
[Baekjoon/C++] 명령 프롬프트 1032번  (0) 2022.04.21
[Baekjoon/C++] 분산처리 1009번  (0) 2022.04.21
[Baekjoon/C++] 음계 2920번  (0) 2022.04.13