백준 1075번 (나누기, C++) [BAEKJOON]

목차 테이블

나누기

https://www.acmicpc.net/problem/1075

시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초128 MB183639967880656.572%

문제

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

예제 입력 1

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
1000
3
1000 3
1000
3

예제 출력 1

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
02
02
02

예제 입력 2

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
2000000000
100
2000000000 100
2000000000
100

예제 출력 2

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
00
00
00

예제 입력 3

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
23442
75
23442 75
23442
75

예제 출력 3

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
00
00
00

예제 입력 4

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
428392
17
428392 17
428392
17

예제 출력 4

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
15
15
15

예제 입력 5

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
32442
99
32442 99
32442
99

예제 출력 5

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
72
72
72

출처

  • 문제를 번역한 사람: baekjoon
  • 문제의 오타를 찾은 사람: eric00513
  • 잘못된 조건을 찾은 사람: myju742

알고리즘 분류


통과된 코드

부루트포스 알고리즘을 이용하여 00 부터 99 까지 모든 경우의 수를 확인한다.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#include <iostream>
#include <string>
using namespace std;
int main()
{
int N, F, result;
cin >> N >> F;
result = INT32_MAX;
for (int i = 99; i >= 0; i--) {
if ((((N / 100) * 100) + i) % F == 0) result = i;
}
string str;
str = to_string(result);
if (str.length() == 1) str.insert(0, "0");
cout << str;
return 0;
}
#include <iostream> #include <string> using namespace std; int main() { int N, F, result; cin >> N >> F; result = INT32_MAX; for (int i = 99; i >= 0; i--) { if ((((N / 100) * 100) + i) % F == 0) result = i; } string str; str = to_string(result); if (str.length() == 1) str.insert(0, "0"); cout << str; return 0; }
#include <iostream>
#include <string>

using namespace std;

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

	result = INT32_MAX;
	for (int i = 99; i >= 0; i--) {
		if ((((N / 100) * 100) + i) % F == 0) result = i;
	}
	string str;
	str = to_string(result);
	if (str.length() == 1) str.insert(0, "0");
	cout << str;

	return 0;
}

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다