반응형
풀이
- 해당 문제에선 고민이 되었던 것은
- 분자가 분모보다 값이 큰 것까지 고려해야할 까? 였는데
- 우선 거기까지는 생각하지 말고 해결해보자는 마음으로 해결했음.
- 우선 분모의 최대공약수를 찾고 그에 따라
- 각 분수의 분자를 곱해준 뒤,
- 합한 분수의 분자와 분모에 대한 GCD를 계속 구하면서
- 1이 나올때까지 반복하여 기약분수로 만들어주면서 해결.
import java.util.Scanner;
public class _1735 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a1 = sc.nextInt();
int a2 = sc.nextInt();
int b1 = sc.nextInt();
int b2 = sc.nextInt();
int gcd = GCD(a2,b2);
a1 = a1*(b2/gcd);
b1 = b1*(a2/gcd);
int x = a1+b1;
int y = a2*(b2/gcd);
while (true) {
gcd = GCD(x,y);
if (gcd==1) break;
else {
x/=gcd;
y/=gcd;
}
}
System.out.printf("%d %d",x,y);
}
public static int GCD(int x, int y) {
while (y!=0) {
int tmp = y;
y = x%y;
x = tmp;
}
return x;
}
}
'알고리즘' 카테고리의 다른 글
[백준, 자바, 2581번] 소수 (0) | 2024.11.13 |
---|---|
[백준, 자바, 4134번] 다음 소수 (1) | 2024.11.12 |
[백준, 자바, 13241번] 최소공배수 (0) | 2024.11.12 |
[백준, 자바, 1620번] 나는야 포켓몬 마스터 이다솜 (1) | 2024.11.12 |
[백준, 자바, 7785번] 회사에 있는 사람 (0) | 2024.11.11 |