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

C++로 등차수열의 합 구하기: 완벽 가이드


이 글에서는 첫째 항 'a', 공차 'd', 그리고 항의 개수 'n'이 주어졌을 때 등차수열을 생성하고 그 합을 계산하는 C++ 프로그램을 다룹니다.

등차수열(Arithmetic Series)이란?

등차수열은 인접한 두 항 사이의 차이가 일정한 수열입니다. 첫째 항은 고정된 값 'a'이며, 각 항 사이의 공통된 차이를 공차 'd'라고 부릅니다.

등차수열은 다음과 같이 표현할 수 있습니다.

a, a + d, a + 2d, a + 3d, . . .

예시

입력: a = 1.5, d = 0.5, n = 10
출력: 등차수열의 합 : 37.5
입력: a = 2.5, d = 1.5, n = 20
출력: 등차수열의 합 : 335

해결 접근 방법

  • 첫째 항(a), 공차(d), 항의 개수(n)를 입력받습니다.
  • n번까지 반복문을 순회하면서 임시 변수에 현재 항을 더하고, 매 반복마다 항에 공차 d를 더해 다음 항을 만듭니다.
  • 최종 결과값을 출력합니다.

알고리즘

시작
Step 1 -> 수열의 합을 구하는 함수 선언
    float sum(float a, float d, int n)
    float sum = 0 으로 초기화
    반복문: int i=0부터 i<n까지 i++
        sum = sum + a
        a = a + d
    반복문 종료
    sum 반환
Step 2 -> main() 함수에서
    int n = 10 설정
    float a = 1.5, d = 0.5 설정
    sum(a, d, n) 호출

C++ 구현 코드

#include<bits/stdc++.h>
using namespace std;
// 수열의 합을 구하는 함수
float sum(float a, float d, int n) {
    float sum = 0;
    for (int i=0;i<n;i++) {
        sum = sum + a;
        a = a + d;
    }
    return sum;
}
int main() {
    int n = 10;
    float a = 1.5, d = 0.5;
    cout<<"sum of series A.P is : "<<sum(a, d, n);
    return 0;
}

실행 결과

sum of series A.P is : 37.5

참고: 등차수열 합 공식 활용하기

위 코드는 반복문을 사용해 각 항을 하나씩 더하는 방식입니다. 하지만 등차수열의 합은 수학적 공식을 이용하면 O(1)의 시간 복잡도로 즉시 계산할 수 있습니다.

합 = n × (2a + (n − 1) × d) / 2

예를 들어 a = 1.5, d = 0.5, n = 10인 경우: 10 × (3 + 4.5) / 2 = 10 × 7.5 / 2 = 37.5로, 반복문 방식과 동일한 결과를 얻을 수 있습니다. 항의 개수가 매우 클 때는 이 공식을 사용하는 것이 훨씬 효율적입니다.