Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript로 진분수를 대분수로 변환하는 방법

수학에서 분수는 다양한 형태로 표현될 수 있으며, 그중 진분수(proper fraction)대분수(mixed fraction)로 바꾸는 것은 매우 기본적인 변환입니다. 이번 글에서는 자바스크립트(JavaScript)를 이용해 진분수를 대분수 형태로 변환하는 방법을 알아보겠습니다.

진분수란?

진분수는 p/q 형태로 표현되는 분수를 말합니다. 여기서 p와 q는 모두 자연수이며, 일반적으로 분자(p)가 분모(q)보다 작거나 같은 값을 가집니다.

대분수란?

대분수는 정수 부분과 진분수 부분을 함께 나타낸 분수입니다. 분수의 분자(a)를 분모(b)로 나누었을 때 몫이 q, 나머지가 r이라고 가정해 봅시다.

이때 분수(a/b)의 대분수 형태는 다음과 같습니다.

q r/b

이 값은 "q와 b분의 r"로 읽습니다. 예를 들어 43/13을 나누면 몫은 3, 나머지는 4이므로 대분수 형태는 "3과 13분의 4", 즉 3 4/13이 됩니다.

문제 정의

정확히 두 개의 숫자로 이루어진 배열, 즉 진분수를 나타내는 배열을 입력받아, 해당 분수의 대분수 형태를 나타내는 세 개의 숫자 배열을 반환하는 자바스크립트 함수를 작성해야 합니다.

변환 로직

  • Math.floor()를 사용해 분자를 분모로 나눈 을 구합니다.
  • 나머지 연산자(%)를 사용해 나머지를 구합니다.
  • 나머지가 0이라면 결과는 정수이므로 몫만 반환하고, 그렇지 않으면 [몫, 나머지, 분모] 형태의 배열을 반환합니다.

예제 코드

다음은 위 로직을 구현한 코드입니다.

const arr = [43, 13];
const properToMixed = arr => {
    const quotient = Math.floor(arr[0] / arr[1]);
    const remainder = arr[0] % arr[1];
    if(remainder === 0){
       return [quotient];
    }else{
       return [quotient, remainder, arr[1]];
    };
};
console.log(properToMixed(arr));

실행 결과

위 코드를 실행하면 콘솔에 다음과 같은 결과가 출력됩니다.

[ 3, 4, 13 ]

즉, 진분수 43/13은 대분수 형태인 3 4/13으로 변환되었으며, 배열의 각 요소는 차례대로 정수 부분(3), 분자(4), 분모(13)를 의미합니다. 이처럼 Math.floor()와 나머지 연산자만 활용하면 복잡한 라이브러리 없이도 간단하게 진분수를 대분수로 변환할 수 있습니다.