문제 개요
이 문제에서는 하나의 정수 N이 주어지며, 다음 수열의 N번째 항을 구하는 것이 과제입니다.
9, 45, 243, 1377, 8019, …
예시를 통해 문제를 이해해 보겠습니다.
입력 : N = 4
출력 : 1377
해결 접근 방법
이 문제를 해결하는 가장 간단한 방법은 수열을 관찰하여 N번째 항의 일반식을 도출하는 것입니다. 각 항을 자세히 분석해 보면 다음과 같은 규칙을 발견할 수 있습니다.
(11 + 21) × 31, (12 + 22) × 32, (13 + 23) × 33, … , (1n + 2n) × 3n
즉, N번째 항은 (1N + 2N) × 3N이라는 공식으로 표현할 수 있습니다. 실제로 값을 대입해 검증해 보면 다음과 같습니다.
- N = 1 → (1 + 2) × 3 = 9
- N = 2 → (1 + 4) × 9 = 45
- N = 3 → (1 + 8) × 27 = 243
- N = 4 → (1 + 16) × 81 = 1377
- N = 5 → (1 + 32) × 243 = 8019
모든 항이 공식과 정확히 일치하므로, 이 일반식을 사용하면 어떤 N에 대해서도 해당 항을 즉시 계산할 수 있습니다.
예제 코드
다음은 위 해결 방법의 작동 방식을 보여주는 C++ 프로그램입니다.
#include <iostream>
#include <math.h>
using namespace std;
long findNthTermSeries(int n){
return ( ( (pow(1, n) + pow(2, n)) )*pow(3, n) );
}
int main(){
int n = 4;
cout<<n<<"th term of the series is "<<findNthTermSeries(n);
return 0;
}코드 설명
findNthTermSeries() 함수는 C++의 pow() 함수를 활용하여 1의 n제곱과 2의 n제곱을 더한 값에 3의 n제곱을 곱한 결과를 반환합니다. main() 함수에서는 N = 4를 입력값으로 사용하여 수열의 4번째 항을 계산한 뒤 화면에 출력합니다.
출력 결과
4th term of the series is 1377