티스토리 뷰

백준/BRONZE

[백준/C++]1075 나누기

ajaa 2021. 2. 15. 19:04

문제

두 정수 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을 추가해서 두 자리로 만들어야 한다.

#include <iostream>
using namespace std;

int main()
{
	int n, f;
	cin >> n >> f;
	for (int i = 0; i <= 99; i++) {
		n = (n / 100) * 100;
		n += i;
		if (n % f == 0) {
			if (i < 10)
				cout << "0" << i << endl;
			else
				cout << i << endl;
			break;
		}
	}

}

 

해결: n의 십의 자리와 일의 자리를 버린 후 0부터 99까지(i값) 한개씩 차례로 더해봄

더한 숫자를 f로 나눈 나머지가 처음으로 0이 되는 순간 그때의 i값을 출력

 

ex: 만약 n=1021, f=11을 입력했을 경우,

십의 자리와 일의 자리를 버림 1021 => 1000

0에서 시작하여 차례로 더해봄

1을 더하여 1001이 되었을 때 처음으로 11로 나누어 떨어지게 되므로 답은 01

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

[백준/C++] 1919 애너그램 만들기  (0) 2021.02.23
[백준/C++] 1340 연도 진행바  (0) 2021.02.20
[백준/C++] 1233 주사위  (0) 2021.02.18
[백준/C++] 1193 분수찾기  (0) 2021.02.18
[백준/C++] 1225 이상한 곱셈  (0) 2021.02.18
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함