Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++로 수열 0, 9, 22, 39, 60, 85, 114, 147, …의 N번째 항을 구하는 프로그램

이 문제에서는 하나의 숫자 N이 주어지며, 목표는 C++을 사용해 수열 0, 9, 22, 39, 60, 85, 114, 147, …의 N번째 항을 구하는 프로그램을 작성하는 것입니다.

문제 설명

주어진 수열은 다음과 같습니다.

0, 9, 22, 39, 60, 85, 114, 147, … (총 N개의 항)

이 수열의 N번째 항을 구하려면 먼저 수열의 일반항을 나타내는 공식을 유도한 뒤, 그 식에 N 값을 대입하여 계산하면 됩니다.

예시로 이해하기

  • 입력: N = 6
  • 출력: 85

해결 접근 방법

수열의 일반항을 찾기 위해 각 항의 증가 패턴을 관찰해 보겠습니다. 인접한 항들 사이의 차이는 9, 13, 17, 21, 25, … 로 매번 4씩 일정하게 증가합니다. 이처럼 차분이 등차수열을 이루는 경우에는 포물선 형태의 성장 패턴이 나타나며, 이는 일반항이 이차(quadratic) 함수임을 의미합니다.

실제 계산을 통해 유도한 이 수열의 일반항 공식은 다음과 같습니다.

TN = 2 × (N2) + 3 × N − 5

공식 검증: N=1이면 2+3−5=0, N=2이면 8+6−5=9, N=3이면 18+9−5=22로, 주어진 수열과 정확히 일치합니다.

솔루션 동작을 보여주는 프로그램

#include <iostream>
using namespace std;
int findNTerm(int N) {
    int nthTerm = ( (2*N*N) + (3*N) - 5 );
    return nthTerm;
}
int main()
{
    int N = 8;
    cout<<N<<"th term of the series is "<<findNTerm(N);
    return 0;
}

출력 결과:

8th term of the series is 147