백준 문제풀기/JAVA

[백준 1735 JAVA 자바] 분수 합

냉동피자 2023. 7. 30. 20:33

두 분수의 합을 기약분수로 구하는 프로그램을 작성하시오

 

기약분수는 더 이상 약분되지 않는 분수를 의미합니다

 

 

1. 나누지말고 통분의 과정을 이용해 두 분수를 더합시다

2. 약분 = 분자와 분모의 공약수를 나누는 과정

3. 공약수가 1밖에 남지 않았을 때까지 나누거나, 최대공약수로 나누면 되겠죠

 

코드입니다

 

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.StringTokenizer;

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		int[][] arr = new int[2][2];
		
		for(int i=0;i<2;i++) {
			String line = br.readLine();
			StringTokenizer st = new StringTokenizer(line);
			arr[i][0] = Integer.parseInt(st.nextToken());
			arr[i][1] = Integer.parseInt(st.nextToken());
		}
		
		int bj = arr[0][1]*arr[1][0]+arr[0][0]*arr[1][1];
		int bm = arr[0][1]*arr[1][1];
		
		System.out.println(bj/gcd(bj,bm)+" "+bm/gcd(bj,bm));
		
	}
	static int gcd(int a, int b) {
		while (b != 0) {
			int r = a%b;
			a=b;
			b=r;
		}
		return a;
	}
}

int bj = ;

int bm = ;

은 통분하는 과정입니다

 

static int gcd()함수는 

최대공약수를 구해주는 함수입니다