티스토리 뷰

Algorithm/BOJ

백준 3036번 C++

poopooreum 2023. 8. 17. 12:35
반응형
백준 3036번 링

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

3036번: 링

출력은 총 N-1줄을 해야 한다. 첫 번째 링을 제외한 각각의 링에 대해서, 첫 번째 링을 한 바퀴 돌리면 그 링은 몇 바퀴 도는지 기약 분수 형태 A/B로 출력한다.

www.acmicpc.net



정답 코드

#include<iostream>
using namespace std;
int arr[100];
int find(int a, int b);
int main() {
	int n;
	cin >> n;
	for (int x = 0; x < n; x++)
		cin >> arr[x];
	for (int x = 0; x < n - 1; x++) {
		int res = find(arr[0], arr[x + 1]);
		cout << arr[0] / res << "/" << arr[x + 1] / res << "\n";
	}
}
int find(int a, int b) {
	if (a < b)
		swap(a, b);
	int res = 0;
	while (b != 0) {
		res = a % b;
		a = b;
		b = res;
	}
	return a;
}

문제 풀이

첫 번째 원을 기준으로 각각의 원에 대한 최대공약수를
구해서 나누어서 풀었습니다. 공약수 알고리즘은 유클리드 호제법을 이용하였습니다.

반응형

'Algorithm > BOJ' 카테고리의 다른 글

백준 3052번 C++  (0) 2023.08.17
백준 3046번 C++  (0) 2023.08.17
백준 3009번 C++  (0) 2023.08.15
백준 3003번 C++  (0) 2023.08.15
백준 2960번 C++  (0) 2023.08.15
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
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
글 보관함