🖥️ CS/Baekjoon Algorithms

#3036번 링 (C++)

한국의 메타몽 2020. 11. 3. 15:12

링크 : www.acmicpc.net/problem/3036

 

3036번: 링

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

www.acmicpc.net

첫 번째 링과 각 원의 최대 공약수를 구해서 각각 나눈 값이 정답이다. 

 

#include<iostream>

using namespace std;
int small = 0;

int gc(int a, int b) {
	int ans = 0;
	for (int i = 1; i <= small; i++) {
		if (a % i == 0 && b % i == 0) ans = i;
	}
	return ans;
}

int main() {
	ios::sync_with_stdio(NULL);
	cin.tie(NULL);
	
	int n = 0, arr[101], temp = 1, gcnum = 0;
	cin >> n;
	for (int i = 0; i < n; i++) cin >> arr[i];
	while (temp < n) {
		small = arr[0] > arr[temp] ? arr[temp] : arr[0];
		gcnum = gc(arr[0], arr[temp]);
		cout << arr[0] / gcnum << "/" << arr[temp] / gcnum << "\n";
		temp++;
	}

	return 0;
}

'🖥️ CS > Baekjoon Algorithms' 카테고리의 다른 글

#9012번 괄호 (C++)  (0) 2020.11.05
#11051번 이항 계수2 (C++)  (0) 2020.11.05
#2609번 최대공약수와 최대공배수 (C++)  (0) 2020.11.02
#1946번 신입 사원 (C++)  (0) 2020.11.01
#11399번 ATM (C++)  (0) 2020.10.30