반응형
유클리드 호제법을 써서 최대공약수를 이용해서 풀었다.
https://www.acmicpc.net/problem/3036
#include <cstdio>
int GCD(int a, int b) {
return a % b ? GCD(b, a%b) : b;
}
int main() {
int n;
scanf("%d", &n);
int arr[102];
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
for (int i = 1; i < n; i++) {
int gcd = GCD(arr[0], arr[i]);
printf("%d/%d\n", arr[0]/gcd, arr[i]/gcd);
}
}
나중에 찾아보니 유클리드 호제법은 이렇게 쓰는게 더 좋은것 같더라
int gcd(int a, int b)
{
return b ? gcd(b, a%b) : a;
}
'Study > algorithms' 카테고리의 다른 글
[백준] 11051. 이항계수2 (0) | 2020.02.15 |
---|---|
[백준] 11050 이항계수1 (0) | 2020.02.15 |
[백준] 1541. 잃어버린 괄호 (0) | 2020.02.11 |
[백준] 2565 전깃줄 (0) | 2020.02.08 |
[백준] 11054. 가장긴 바이토닉 부분수열 C++ (0) | 2020.02.06 |