이 문제에서는 하나의 정수 N이 주어지며, 우리의 목표는 수열 1, 6, 18, 40, 75, …에서 N번째 항을 찾는 프로그램을 작성하는 것입니다.
문제 이해를 위한 예시
입력
N = 4
출력
40
설명
수열의 4번째 항은 다음과 같이 계산됩니다.
(4 × 4 × 5) ÷ 2 = 40
해결 방법
이 문제를 해결하는 가장 간단한 방법은 수열의 N번째 항에 대한 일반 공식을 활용하는 것입니다. 분석해 보면 이 수열은 삼각수를 기반으로 하며, N번째 항은 아래 공식으로 표현할 수 있습니다.
N번째 항 = (N × N × (N + 1)) / 2
예를 들어 N = 3인 경우, (3 × 3 × 4) / 2 = 18로 수열의 세 번째 값과 일치하는 것을 확인할 수 있습니다.
구현 예제
#include <iostream>
using namespace std;
int calcNthTerm(int N) {
return ((N * N * (N + 1)) / 2);
}
int main() {
int N = 5;
cout << N << "번째 항의 값은 " << calcNthTerm(N);
return 0;
}출력 결과
5번째 항의 값은 75
코드 설명
calcNthTerm() 함수는 정수 N을 매개변수로 받아 위의 일반 공식을 적용한 결과를 반환합니다. 시간 복잡도는 O(1)로, 어떤 큰 N값에 대해서도 즉시 결과를 계산할 수 있다는 장점이 있습니다.