이 문제에서는 숫자 N이 주어졌을 때, C++를 사용하여 수열 1, 4, 15, 24, 45, 60, 92…의 N번째 항을 구하는 프로그램을 작성하는 것이 목표입니다.
문제 설명
주어진 수열은 다음과 같습니다.
1, 4, 15, 24, 45, 60, 92, 112 … N개의 항
우리는 이 수열의 일반항(공식)을 찾아야 합니다.
예제로 문제 이해하기
입력 − N = 6
출력 − 60
해결 접근 방법
이 수열의 일반항은 N이 홀수인지 짝수인지에 따라 달라집니다. 이러한 유형의 수열은 처음에는 패턴을 파악하기가 다소 까다롭지만, 수열을 홀수 번째 항과 짝수 번째 항 두 그룹으로 나누어 생각하면 일반항을 훨씬 쉽게 찾을 수 있습니다.
일반항은 다음과 같습니다.
TN = ((2 × N²) − N), N이 홀수인 경우
TN = (2 × (N² − N)), N이 짝수인 경우
예를 들어 N = 6(짝수)일 때 T₆ = 2 × (36 − 6) = 60으로, 기대한 결과와 일치합니다.
솔루션 동작을 확인하는 프로그램
#include <iostream>
using namespace std;
int findNTerm(int N) {
if (N % 2 == 0)
return ( 2*((N*N)-N) );
return ( (2*(N*N)) - N );
}
int main()
{
int N = 10;
cout<<N<<"번째 수열의 항은 "<<findNTerm(N);
return 0;
}
출력:
10번째 수열의 항은 180
N = 10은 짝수이므로 공식 2 × (10² − 10) = 2 × 90 = 180이 적용되어 올바른 결과가 출력됩니다. 이처럼 N의 홀짝 여부만 판단하면 간단한 조건문 하나로 수열의 임의의 항을 빠르게 계산할 수 있습니다.