- 생각
두개의 분수를 입력하면 둘의 합을 출력하면 된다. 합친 분수의 분모는 분모끼리의 곱, 분자는 분자와 분모곱을 더 해주면 된다. 여기서 문제는 최대공약수를 빼줘야한다는 것이다.
1. 유클리드 호제법으로 최대공약수를 구한뒤 분자, 분모를 나누어서 출력해주면 된다.
- 코드
정답 코드 : 유클리드 호제법으로 최대공약수를 구해준 뒤, 합친 분수의 값에 나누어서 출력해줌.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.Queue;
import java.util.StringTokenizer;
public class Main {
static int a, b, gcd;
public static void main(String[] args) throws Exception {
SetData();
System.out.println((a / gcd) + " " + (b / gcd));
}
private static void SetData() throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int a1 = Integer.parseInt(st.nextToken());
int b1 = Integer.parseInt(st.nextToken());
st = new StringTokenizer(br.readLine());
int a2 = Integer.parseInt(st.nextToken());
int b2 = Integer.parseInt(st.nextToken());
a = a1 * b2 + a2 * b1;
b = b1 * b2;
gcd = getGCD(a, b);
}
public static int getGCD(int p, int q) {
if (q == 0) {
return p;
}
return getGCD(q, p % q);
}
}
'algorithm' 카테고리의 다른 글
[JAVA] 백준 9020번 : 골드바흐의 추측 (0) | 2020.11.30 |
---|---|
[JAVA] 백준 1978번 : 소수 찾기 (0) | 2020.11.30 |
[JAVA] 백준 1929번 : 소수 구하기 (0) | 2020.11.27 |
[JAVA] 백준 1057번 : 토너먼트 (0) | 2020.11.25 |
[JAVA] 백준 13164번 : 행복 유치원 (0) | 2020.11.24 |