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

C 프로그래밍으로 급수 2, 10, 30, 68, …의 합 구하기

이 급수의 합을 구하기 위해 먼저 급수가 가진 패턴을 분석해 보겠습니다.

주어진 급수는 다음과 같습니다.

2, 10, 30, 68, …

급수 분석

예를 들어 n = 6일 때 급수의 합은 다음과 같습니다.

n = 6일 때
합 = 462

주어진 급수를 자세히 살펴보면, 이 급수는 두 개의 급수를 더한 형태임을 알 수 있습니다. 첫 번째는 자연수 n의 항들로 이루어진 급수이고, 두 번째는 자연수 n의 세제곱(n³)으로 이루어진 급수입니다. 즉, 각 항을 다음과 같이 분리할 수 있습니다.

2, 10, 30, 68 = (1 + 1³), (2 + 2³), (3 + 3³), (4 + 4³)

따라서 전체 급수의 합은 다음과 같이 표현할 수 있습니다.

합 = 2 + 10 + 30 + 68 … = (1 + 2 + 3 + 4 …) + (1³ + 2³ + 3³ + 4³ …)

공식 유도

이러한 구조를 바탕으로, 급수의 합을 계산하는 공식은 두 급수 각각의 합 공식을 더한 형태로 정의됩니다.

위 급수의 합을 구하는 수학적 공식은 다음과 같습니다.

합 = n × (n + 1) / 2 + (n × (n + 1) / 2)²

여기서 n × (n + 1) / 2는 처음 n개 자연수의 합이며, 그 값을 제곱하면 처음 n개 자연수의 세제곱의 합과 같습니다. 두 값을 더하면 원하는 급수의 총합을 손쉽게 구할 수 있습니다.

C 코드 예제

#include <stdio.h>
int main() {
    int n = 6;
    int sum = (n*(n + 1)/2) + (n*(n+1)/2)*(n*(n+1)/2);
    printf("%d까지 급수의 합은 %d입니다", n, sum);
    return 0;
}

실행 결과

6까지 급수의 합은 462입니다

이처럼 반복문 없이 하나의 수학 공식만으로도 급수의 합을 O(1) 시간 복잡도로 빠르게 계산할 수 있습니다.