Space
article thumbnail
반응형

문제 (분수의 덧셈)

 

일반 분수의 덧셈처럼 구해봤지만 최대공약수를 구하지 못해 많이 헤매었었다.

 

이 문제의 요점은 최대공약수를 구할 수 있냐 없냐에 달린 것 같다.

 

최대공약수 구하는 방법

function fnGCD(a, b){
    return a % b? fnGCD(b, a % b) : b;
}

 

재귀함수를 이용하여 최대공약수를 구한다.

 

결론

function solution(num1, denom1, num2, denom2) {
    function fnGCD(a, b){  // 최대공약수
        return (a % b)? fnGCD(b, a % b) : b;
    }
    
    const top = num1 * denom2 + num2 * denom1; // 분자
    const bottom = denom1 * denom2;  // 분모
    let gcd = fnGCD(top, bottom);
    const result = [top/gcd, bottom/gcd];  // 최대공약수로 나눈다
    return result;
}
반응형
profile

Space

@Space_zero

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!