분수덧셈

민태영·2023년 11월 16일
0

문제

첫 번째 분수의 분자와 분모를 뜻하는 numer1, denom1, 두 번째 분수의 분자와 분모를 뜻하는 numer2, denom2가 매개변수로 주어집니다. 두 분수를 더한 값을 기약 분수로 나타냈을 때 분자와 분모를 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요.

제한사항

  • 0 <numer1, denom1, numer2, denom2 < 1,000

최종 코드

// 최대공약수함수
function greCoDivisor(param1, param2) {
    let answer = 0;
    let minNum = Math.min(param1, param2)
    let maxNum = Math.max(param1, param2)
    while(minNum > 0) {
        let num = minNum;
        minNum = maxNum % minNum
        maxNum = num
    }
    return answer = maxNum
}

function solution(numer1, denom1, numer2, denom2) {
    var answer = [];
    //  분수덧셈하기
    let sumNumer = (numer1 * denom2) + (numer2 * denom1)
    let sumDenom = denom1 * denom2
    const divisor = greCoDivisor(sumDenom,sumNumer)
    
    if(divisor === 1) {
        answer.push(sumNumer, sumDenom)
    } else {
        answer.push(sumNumer / divisor, sumDenom / divisor)
        
    }
    return answer;
}
profile
꿈을 꾸는 개발자

0개의 댓글