수열(series)이란 각 항이 공통된 규칙을 따르는 수들의 나열을 의미합니다. 대표적인 수열로는 매 항이 일정한 간격만큼 증가하는 등차수열(arithmetic progression), 매 항이 일정한 배율로 증가하는 등비수열(geometric progression) 등이 있으며, 그 외에도 다양한 패턴을 가진 수열들이 존재합니다.
수열의 합을 구하려면 먼저 수열의 규칙을 분석하여 일반화된 공식을 유도하는 것이 가장 효율적입니다. 하지만 닫힌 형태의 공식(closed-form formula)이 바로 떠오르지 않는 경우에는, 고전적인 접근 방식대로 반복문을 활용해 각 항을 하나씩 더해가며 합을 누적하는 방법을 사용할 수 있습니다.
예시로 이해하기
첫 7개의 홀수 제곱수의 합은 다음과 같습니다.
sum(7) = 12 + 32 + 52 + 72 + 92 + 112 + 132 = 455
일반 공식
n번째 홀수는 2n − 1이므로, 홀수 제곱수의 합은 다음 공식을 통해 반복문 없이 한 번에 계산할 수도 있습니다.
S(n) = n(4n² − 1) / 3
예를 들어 n = 7을 대입하면 S(7) = 7 × (196 − 1) / 3 = 455로, 위의 결과와 일치함을 확인할 수 있습니다.
C 언어 예제 코드
#include <stdio.h>
int main() {
int i, n, sum = 0;
n = 17;
for (i = 1; i <= n; i++) {
sum = sum + (2 * i - 1) * (2 * i - 1);
}
printf("The sum of series upto %d is %d", n, sum);
return 0;
}
코드 동작 원리
위 코드에서는 변수 i를 1부터 n까지 반복하면서, i번째 홀수인 2i − 1의 제곱값을 sum 변수에 계속 더합니다. 모든 반복이 끝나면 sum에는 처음 n개의 홀수 제곱수의 총합이 저장됩니다.
실행 결과
The sum of series upto 17 is 6545
n = 17을 공식에 직접 대입해 보면 S(17) = 17 × (1156 − 1) / 3 = 6545로, 프로그램의 실행 결과와 정확히 일치하는 것을 알 수 있습니다.