이 글에서는 첫째 항 '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로, 반복문 방식과 동일한 결과를 얻을 수 있습니다. 항의 개수가 매우 클 때는 이 공식을 사용하는 것이 훨씬 효율적입니다.