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

PHP로 처음 n개의 자연수의 제곱합 계산하기 – 반복문과 수학 공식 두 가지 방법

제곱합이란 처음 n개의 자연수를 각각 제곱한 후 모두 더한 값, 즉 1² + 2² + 3² + … + n²을 의미합니다. 이번 글에서는 PHP를 이용해 이 값을 계산하는 두 가지 방법을 예제 코드와 함께 살펴보겠습니다.

방법 1: 반복문(for loop) 사용하기

가장 기본적인 방법은 반복문을 이용해 1부터 n까지 각 숫자의 제곱을 누적하는 것입니다.

<?php
function sum_of_squares($limit)
{
    $sum = 0;
    for ($i = 1; $i <= $limit; $i++) {
        $sum += ($i * $i);
    }
    return $sum;
}
$limit = 5;
echo '처음 5개의 자연수의 제곱합은 ';
echo sum_of_squares($limit);
?>

실행 결과

처음 5개의 자연수의 제곱합은 55

코드 설명

  • 함수 정의: 'sum_of_squares' 함수는 제곱합을 구할 범위(limit)를 매개변수로 받습니다.
  • 초기화: 함수 내부에서 합계를 저장할 변수를 0으로 초기화합니다.
  • 반복 처리: for 반복문이 1부터 limit까지 순회하며, 매번 현재 반복 변수의 제곱($i * $i)을 합계 변수에 더합니다.
  • 결과 반환: 반복이 끝나면 누적된 합계 값을 반환합니다.
  • 함수 호출: 함수 외부에서 limit 값을 지정한 뒤, 이 값을 인자로 전달하여 함수를 호출하고 결과를 출력합니다.

주의할 점: 반복문 안에서 더해야 할 값은 반복 변수 $i의 제곱입니다. 실수로 $limit의 제곱을 매번 더하게 되면 전혀 다른 값이 계산되므로 주의해야 합니다.

방법 2: 수학 공식 사용하기

반복문 없이도 널리 알려진 수학 공식을 활용하면 O(1) 시간 복잡도로 결과를 구할 수 있습니다.

공식: n(n + 1)(2n + 1) / 6

<?php
function sum_of_squares_formula($n)
{
    return ($n * ($n + 1) * (2 * $n + 1)) / 6;
}
echo '처음 5개의 자연수의 제곱합은 ';
echo sum_of_squares_formula(5);
?>

n = 5일 경우 5 × 6 × 11 / 6 = 55로, 반복문 방식과 동일한 결과를 얻을 수 있습니다. 특히 n의 값이 클수록 반복문 방식보다 훨씬 빠르고 효율적이므로, 성능이 중요한 상황에서는 공식 기반 접근이 권장됩니다.