Notice
Recent Posts
Recent Comments
Link
250x250
«   2024/11   »
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
Archives
Today
Total
관리 메뉴

피너클의 it공부방

백준 1075 나누기 (c++) : 피너클 본문

백준

백준 1075 나누기 (c++) : 피너클

피너클 2022. 8. 20. 21:17
728x90
반응형

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

 

1075번: 나누기

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

www.acmicpc.net

완전탐색으로 풀었다.

string n;
int f;

n은 string으로 받을것이다.

cin >> n >> f;

int num = 0;
for (int i = 0; i < n.length() - 2; i++) num = num * 10 + (n[i] - '0');

n과 f을 입력받은뒤 int num에 n을 입력한다.

이때 맨 뒤 2자리는 제외하고 입력한다.

for (int i = 0; i < 100; i++) {
	int ans = num * 100 + i;
	if (ans % f == 0) {
		if (i < 10) cout << 0 << i << '\n';
		else cout << i << '\n';
		break;
	}
}

그후 0부터 99까지 모든 숫자를 돌아보며

ans에 num * 100 + i를 넣고 만약 ans가 f로 나뉘어 떨어지면 i를 출력하면 된다.

이때 i가 10보다 작다면 i를 출력하기 전에 0을 먼저 출력해준다.

#include <iostream>
#include <string>

using namespace std;

string n;
int f;

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);

	cin >> n >> f;

	int num = 0;
	for (int i = 0; i < n.length() - 2; i++) num = num * 10 + (n[i] - '0');
	for (int i = 0; i < 100; i++) {
		int ans = num * 100 + i;
		if (ans % f == 0) {
			if (i < 10) cout << 0 << i << '\n';
			else cout << i << '\n';
			break;
		}
	}
}

전체코드다.

728x90
반응형
Comments