1075번 : 나누기
두 정수 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을 추가해서 두 자리로 만들어야 한다.
생각해 볼 점
입력받은 수의 맨 뒤 두자리 수는 필요가 없으니 제거합니다.
예시)
1985 -> 1900
입력 받은 F로 위의 수를 나누어준 나머지를 구합니다. 만약 나머지가 0이면 F를 구합니다.
예시)
1900 % 3 -> 1
1이 남았으므로, 1900 - 1을 했을 때, 즉, 1899까지는 F로 나누어 떨어졌다는 얘기입니다.
여기서 F를 더해주면 원하는 수가 나옵니다.
1. 1900 % 3 -> 1
2. 1900 - 1 = 1899
3. 1899 + 3 = 1902
답 : 02
코드
#include <iostream>
using namespace std;
int main()
{
int N, F;
scanf("%d\n%d", &N, &F);
int l = N - N % 100;
int d = F - (l % F == 0 ? F : l % F);
int result = (l + d) % 100;
if(result < 10) printf("0");
printf("%d", result);
return 0;
}
그 외
'공부 및 정리 > 백준 코드' 카테고리의 다른 글
[C++]백준 - 1145번 문제 (0) | 2021.10.29 |
---|---|
[C++]백준 - 1076번 문제 (0) | 2021.10.28 |
[C++]백준 - 15681번 문제 (0) | 2021.10.27 |
[C++]백준 - 1024번 문제 (0) | 2021.10.27 |
[C++]백준 - 1774번 문제 (0) | 2021.10.26 |