문 제
소 스 코 드
#include <iostream>
const int GCD(int, int);
// 원의 둘레 : r * 2 * pi
int main() {
int N;
std::cin >> N;
int * circles{ new int[N] };
for (int i = 0; i < N; ++i) std::cin >> circles[i];
for (int i = 1; i < N; ++i) {
int temp{ GCD(circles[0], circles[i]) };
std::cout << circles[0] / temp << '/' << circles[i] / temp << '\n';
}
delete[] circles;
return 0;
}
const int GCD(int a, int b) {
while (b != 0) {
int r = a % b;
a = b;
b = r;
}
return a;
}
풀 이
-
{ 12 3 8 4 }
첫번째 원의 둘레는 12 * 2 * pi
두번째 원의 둘레는 3 * 2 * pi
첫번째 원이 한바퀴 돌 경우 12 * 2 * pi = 3 * 2 * pi * m
12 / 3 = m 이 된다.
이때 12 / 3의 최대공약수를 구한다면, 4 / 1의 결과가 나오게 된다.
두 수의 최대공약수를 구하는 공식, 유클리드 호제법을 통하여 나눈다면 알맞은 결과가 나온다.
출 력 값
문 제 출 처
문제 링크 : [ BAEKJOON ] : https://www.acmicpc.net/problem/3036
3036번: 링
문제 상근이는 창고에서 링 N개를 발견했다. 상근이는 각각의 링이 앞에 있는 링과 뒤에 있는 링과 접하도록 바닥에 내려놓았다. 상근이는 첫 번째 링을 돌리기 시작했고, 나머지 링도 같이 돌�
www.acmicpc.net
'[ ALGORITHM ] > [ 백 준 ]' 카테고리의 다른 글
[BAEKJOON] 11051번 이항 계수 2 (0) | 2020.07.16 |
---|---|
[BAEKJOON] 11050번 이항 계수 1 (0) | 2020.07.15 |
[BAEKJOON] 2981번 검문 (0) | 2020.07.13 |
[BAEKJOON] 2609번 최대공약수와 최소공배수 (0) | 2020.07.12 |
[BAEKJOON] 11653번 소인수분해 (0) | 2020.07.11 |