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

PHP로 처음 n개의 자연수 세제곱의 합 구하기

처음 n개의 자연수 세제곱의 합을 구하는 것은 프로그래밍에서 자주 접하는 기본적인 문제입니다. PHP에서는 반복문을 활용해 손쉽게 해결할 수 있으며, 수학 공식을 사용하면 더욱 효율적인 처리도 가능합니다.

반복문을 이용한 구현

아래는 처음 n개의 자연수 세제곱의 합을 구하는 PHP 코드입니다.

예제 코드

<?php
function sum_of_cubes($val)
{
    $init_sum = 0;
    for ($x = 1; $x <= $val; $x++)
        $init_sum += $x * $x * $x;
    return $init_sum;
}
print_r("처음 8개의 자연수 세제곱의 합은 ");
echo sum_of_cubes(8);
?>

실행 결과

처음 8개의 자연수 세제곱의 합은 1296

코드 설명

'sum_of_cubes'라는 이름의 함수가 정의되어 있으며, 함수 내부에서는 합계를 저장할 변수를 0으로 초기화합니다. 이후 for 반복문을 통해 1부터 매개변수로 전달된 값까지 순회하면서, 각 자연수를 세 번 곱한 값(세제곱)을 누적 합계에 더합니다. 반복 범위의 상한값은 함수 외부에서 정의되어 인자로 전달되며, 최종 결과는 화면에 출력됩니다.

수학 공식을 활용한 더 빠른 방법

반복문 없이 수학 공식을 사용하면 시간 복잡도 O(1)로 즉시 결과를 얻을 수 있습니다. 처음 n개의 자연수 세제곱의 합은 다음 공식으로 계산됩니다.

[n × (n + 1) / 2]²

공식 적용 예제

<?php
function sum_of_cubes_formula($val)
{
    $base = ($val * ($val + 1)) / 2;
    return $base * $base;
}
echo sum_of_cubes_formula(8); // 출력: 1296
?>

n이 매우 큰 경우에도 반복문 방식보다 훨씬 빠르게 동작하므로, 실무에서는 공식 기반 접근이 권장됩니다.