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

PHP로 홀수인 자연수의 세제곱 합 구하기: 예제 코드와 상세 해설

이 글에서는 PHP를 활용해 홀수인 자연수들의 세제곱 합을 구하는 프로그램을 만들어 보겠습니다. 예를 들어 처음 8개의 홀수인 자연수는 1, 3, 5, 7, 9, 11, 13, 15이며, 각 숫자를 세제곱한 값(1, 27, 125, 343, 729, 1331, 2197, 3375)을 모두 더하면 8128이라는 결과를 얻을 수 있습니다.

예제 코드

<?php
function sum_of_cubes_odd($val)
{
    $init_sum = 0;
    $count = 0;
    for ($i = 1; $count < $val; $i++)
       if ($i % 2 != 0) {
          $init_sum += $i * $i * $i;
          $count++;
       }
    return $init_sum;
}
print_r('처음 8개의 홀수인 자연수의 세제곱합은 ');
echo sum_of_cubes_odd(8);
?>

실행 결과

처음 8개의 홀수인 자연수의 세제곱합은 8128

코드 동작 원리

먼저 'sum_of_cubes_odd'라는 이름의 함수를 정의합니다. 이 함수는 세제곱을 구할 홀수인 자연수의 개수, 즉 한계값을 매개변수로 전달받습니다.

함수 내부에는 초기값이 0인 누적 변수 $init_sum과, 지금까지 찾은 홀수의 개수를 세는 $count 변수가 준비되어 있습니다. for 반복문이 1부터 시작해 차례대로 숫자를 검사하며, 나머지 연산자(%)를 사용해 $i를 2로 나눈 나머지가 0이 아닌 경우, 즉 홀수인 경우에만 해당 숫자를 세제곱하여 누적 변수에 더하고 카운트를 1씩 증가시킵니다.

$count가 목표 개수에 도달하면 반복문이 종료되고, 지금까지 모아둔 합계가 return 문을 통해 반환됩니다.

마지막으로 함수를 호출할 때 한계값인 8을 인수로 넘기면, 처음 8개의 홀수인 자연수의 세제곱합인 8128이 계산되어 화면에 출력됩니다.

참고: 수학 공식으로 한 번에 구하기

반복문 없이 수학 공식을 사용하면 더 효율적으로 계산할 수도 있습니다. 처음 n개의 홀수인 자연수의 세제곱 합은 n² × (2n² − 1) 공식으로 구할 수 있습니다. n = 8을 대입하면 64 × 127 = 8128로, 위 코드의 실행 결과와 정확히 일치하는 것을 확인할 수 있습니다.