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

JavaScript에서 m의 n제곱근((m)^(1/n)) 값 계산하는 방법

이 글에서는 JavaScript를 사용하여 두 숫자 mn을 입력받아 다음 수식의 값을 계산하고 반환하는 함수를 작성하는 방법을 알아봅니다.

(m)1/n

즉, m의 n제곱근(n-th root)을 구하는 것입니다. 예를 들어 m = 16, n = 4가 주어지면 결과는 2가 되어야 합니다. 왜냐하면 2⁴ = 16이기 때문입니다.

해결 접근 방식

m의 n제곱근은 수학적으로 m^(1/n)과 동일합니다. JavaScript에서는 내장 객체인 Math.pow() 메서드를 활용하면 간단하게 계산할 수 있습니다.

Math.pow(base, exponent)는 base를 exponent만큼 거듭제곱한 값을 반환합니다. 여기서 지수 자리에 1/n을 넣으면 제곱근 연산과 같은 효과를 얻을 수 있습니다.

구현 코드

다음은 화살표 함수(arrow function)를 사용해 작성한 전체 코드입니다.

const m = 16;
const n = 4;

const findNthRoot = (m, n) => {
    // 지수를 1/n으로 설정하여 n제곱근 계산
    const power = 1 / n;
    const res = Math.pow(m, power);
    return res;
};

console.log(findNthRoot(m, n));

출력 결과

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

2

추가 팁

ES2015(ES6) 이상 환경에서는 지수 연산자(exponentiation operator)인 **를 사용하여 더욱 간결하게 작성할 수도 있습니다.

const findNthRoot = (m, n) => m ** (1 / n);

console.log(findNthRoot(27, 3)); // 3
console.log(findNthRoot(81, 4)); // 3

다만 부동소수점 연산 특성상 일부 경우 미세한 오차가 발생할 수 있으므로, 정확한 정수 비교가 필요하다면 Number.EPSILON을 활용한 근사 비교나 반올림 처리를 함께 고려하는 것이 좋습니다.