Algorithm

[Java] 분수의 덧셈

1984 2022. 11. 7. 18:15

* 최대공약수 : gcd

    private static int gcdMethod(int a, int b) {
        BigInteger b1 = BigInteger.valueOf(a);
        BigInteger b2 = BigInteger.valueOf(b);
        BigInteger gcd = b1.gcd(b2);
        return gcd.intValue();
    }

* 최소공배수 : lcm

* 기약분수 : 분자와 분모를 최대공약수로 나눠준다.

import java.math.BigInteger;

class Solution {
    public int[] solution(int denum1, int num1, int denum2, int num2) {
        
        int denum = denum1 * num2 + denum2 * num1;
        int num = num1 * num2;
        int gcd_num = gcdMethod(denum, num);
        
        int[] answer = {denum / gcd_num, num / gcd_num};
        return answer;
    }
    
    private static int gcdMethod(int a, int b) {
        BigInteger b1 = BigInteger.valueOf(a);
        BigInteger b2 = BigInteger.valueOf(b);
        BigInteger gcd = b1.gcd(b2);
        return gcd.intValue();
    }
}
728x90