주어진 수열은 1, 11, 55, 239, 991, …입니다.
이 수열을 자세히 살펴보면 각 항이 일정한 규칙에 따라 증가하고 있음을 확인할 수 있습니다. 분석 결과, n번째 항은 다음과 같은 공식으로 나타낼 수 있습니다.
a(n) = 4n − 2n − 1
공식을 검증해 보면 다음과 같습니다.
- n = 1 → 4¹ − 2¹ − 1 = 4 − 2 − 1 = 1
- n = 2 → 4² − 2² − 1 = 16 − 4 − 1 = 11
- n = 3 → 4³ − 2³ − 1 = 64 − 8 − 1 = 55
- n = 4 → 4⁴ − 2⁴ − 1 = 256 − 16 − 1 = 239
알고리즘
- N값을 초기화합니다.
- 위의 수열 공식을 이용해 n번째 항을 계산합니다.
- 결과를 출력합니다.
C++ 구현 코드
다음은 위 알고리즘을 C++로 구현한 예제입니다.
#include <bits/stdc++.h>
using namespace std;
int getNthTerm(int n) {
int num = pow(4, n) - pow(2, n) - 1;
return num;
}
int main() {
int n = 7;
cout << getNthTerm(n) << endl;
return 0;
}
출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
16255
n = 7일 때, 4⁷ − 2⁷ − 1 = 16384 − 128 − 1 = 16255이므로 프로그램이 정확하게 동작함을 알 수 있습니다.