목차
코드
#include <iostream>
using namespace std;
int main() {
int N, F;
int answer = 0;
cin >> N >> F;
N /= 100;
N *= 100;
while((N+answer) % F != 0 && answer < 100) answer ++;
if(answer < 10) printf("0%d", answer);
else printf("%d", answer);
}
풀이
정수 N의 가장 뒤 두 자리를 적절히 바꿔서 F로 나누어떨어지게 합니다.
단 그 뒤에 두 자리는 나누어 떨어지는 수 중 가장 작은 수 여야만 합니다.
우선 N의 범위를 보면 2,000,000,000보다 작은 수 입니다.
이는 int형 범주에 들어가므로 N와 F는 int형으로 선언해 주어도 문제가 없습니다.
이후, 뒤에 두 자리를 00으로 만들어 주기 위해서는 주어진 N을 100으로 나누고 다시 그 수에 100을 곱하면 됩니다.
ex) N = 8951
N /= 100
N -> 89
N *= 100
N -> 8900
이후 정답이 될 answer를 0부터 99까지 N에 더해가면서 F로 나누었을때 나누어 떨어지면 그 answer를 출력합니다.
단, answer 가 1의 자리일 경우, 앞에 0을 붙여 두 자리수로 출력 해 줍니다.
'공부 > 백준' 카테고리의 다른 글
백준 1110번: 더하기 사이클(C++) (0) | 2020.12.01 |
---|---|
백준 1977번: 완전제곱수(C++) (0) | 2020.11.30 |
백준 9251번: LCS(C++) (0) | 2020.11.28 |
백준 1912번: 연속합(C++) (0) | 2020.11.27 |
백준 2565번: 전깃줄(C++) (0) | 2020.11.26 |