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

JavaScript로 첫 n개의 홀수 자연수 제곱합 구하기

이번 글에서는 숫자 n을 입력받아, 처음 n개의 홀수 자연수의 제곱합을 구하는 JavaScript 함수를 작성해 보겠습니다.

예를 들어 입력값이 3이라면 다음과 같이 계산됩니다.

1² + 3² + 5² = 1 + 9 + 25 = 35

따라서 최종 출력 결과는 다음과 같습니다.

35

접근 방법

k번째 홀수 자연수는 공식 (2 × k) − 1로 표현할 수 있습니다. 즉,

  • 1번째 홀수 → 2 × 1 − 1 = 1
  • 2번째 홀수 → 2 × 2 − 1 = 3
  • 3번째 홀수 → 2 × 3 − 1 = 5

따라서 반복문을 사용해 각 홀수를 구한 뒤 제곱하여 누적하면 원하는 결과를 얻을 수 있습니다.

코드 예제

다음은 전체 구현 코드입니다.

const num = 3;

const squaredSum = num => {
    let sum = 0;
    for (let i = 1; i <= num; i++) {
        sum += Math.pow((2 * i) - 1, 2);
    }
    return sum;
};

console.log(squaredSum(num));

출력 결과

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

35

수학 공식으로 한 번에 계산하기

반복문 없이도 수학 공식을 활용하면 O(1)의 시간 복잡도로 즉시 계산할 수 있습니다. 처음 n개의 홀수 자연수의 제곱합은 다음 공식으로 정리됩니다.

합 = n(2n − 1)(2n + 1) / 3

이 공식을 코드로 구현하면 다음과 같습니다.

const squaredSumFormula = num => {
    return num * ((2 * num - 1) * (2 * num + 1)) / 3;
};

console.log(squaredSumFormula(3)); // 35

n이 매우 큰 경우에는 반복문 방식보다 이 공식 기반 접근법이 훨씬 효율적입니다.