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

등차수열(AP)의 교대 부호를 가진 제곱 급수의 합 구하기

등차수열(AP)이란?

등차수열(Arithmetic Progression, AP)은 연속된 두 항 사이의 차이가 항상 일정한 수열을 의미합니다. 이 차이는 뒤의 항에서 앞의 항을 빼서 계산하며, '공차(common difference)'라고 부릅니다.

등차수열을 쉽게 이해하기 위해 간단한 예시를 살펴보겠습니다.

5, 7, 9, 11, 13, 15, ...

위 등차수열의 공차(d)는 2입니다. 즉, 모든 항이 바로 앞의 항보다 2씩 큽니다. 이 수열의 첫째 항(a)은 5입니다.

n번째 항을 구하는 일반 공식은 다음과 같습니다.

an = a + (n−1)d

문제: 교대 부호를 가진 제곱 급수의 합

이 문제에서는 하나의 등차수열이 주어지며, 부호가 양수와 음수로 교대로 나타나는 제곱 급수의 합을 구해야 합니다. 급수의 형태는 다음과 같습니다.

a12 − a22 + a32 − a42 + a52 + ......

좀 더 명확하게 이해하기 위해 예시를 살펴보겠습니다.

입력: n = 2
출력: -10

설명

1² − 2² + 3² − 4² = 1 − 4 + 9 − 16 = -10

즉, n = 2일 때 처음 2×n개(4개)의 항에 대해 홀수 번째 항은 더하고 짝수 번째 항은 빼면 결과값 -10을 얻을 수 있습니다.

C 언어 구현 예제

#include <stdio.h>
int main() {
    int n = 4;
    int a[] = { 1, 2, 3, 4, 5, 6, 7, 8 };
    int res = 0;
    for (int i = 0; i < 2 * n; i++) {
        if (i % 2 == 0)
            res += a[i] * a[i];
        else
            res -= a[i] * a[i];
    }
    printf("The sum of series is %d", res);
    return 0;
}

출력 결과

The sum of series is -36

위 코드는 배열의 인덱스가 짝수인 경우 해당 항의 제곱을 더하고, 홀수인 경우 제곱을 빼는 방식으로 동작합니다. n = 4일 때 1² − 2² + 3² − 4² + 5² − 6² + 7² − 8² = -36이 되어 최종 결과가 출력됩니다. 시간 복잡도는 O(n)으로 매우 효율적입니다.