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

C++로 수열의 합 구하기: 23+45+75+… N항까지

이 튜토리얼에서는 주어진 수열 23+45+75+……의 N번째 항까지의 합을 구하는 C++ 프로그램에 대해 살펴보겠습니다.

프로그램은 N값을 입력받아 첫 번째 항부터 N번째 항까지 모든 항을 차례대로 더해 수열의 전체 합을 계산하는 것이 목표입니다.

이 문제를 수학적으로 분석하면 다음과 같은 수열의 합 공식을 도출할 수 있습니다.

Sn = (2n(n+1)(4n+17)+54n) / 6

이 공식을 활용하면 반복문 없이도 상수 시간(O(1)) 안에 수열의 합을 바로 계산할 수 있어, N이 매우 큰 경우에도 효율적으로 동작한다는 장점이 있습니다.

예제 코드

#include <iostream>
using namespace std;
// 수열의 합을 계산하는 함수
int calc_sum(int N) {
   int i;
   int sum = (2 * N * (N + 1) * (4 * N + 17) + 54 * N) / 6;
   return sum;
}
int main() {
   int N = 7;
   int res = calc_sum(N);
   cout << res << endl;
   return 0;
}

실행 결과

903

위 예제에서는 N=7로 설정했습니다. calc_sum 함수가 위에서 도출한 공식에 따라 계산한 결과, 수열의 처음 7개 항(23+45+75+…)을 모두 더한 값인 903이 출력됩니다.