Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

시리즈 7, 15, 32, …에서 n번째 항을 찾는 C++ 프로그램


이 문제에서 정수 N이 주어집니다. 작업은 n번째 항을 찾는 것입니다. 7, 15, 32....

문제를 이해하기 위해 예를 들어보겠습니다.

입력

N = 6

출력

281

설명

n번째 항까지의 급수는 7, 15, 32, 67, 138, 281입니다.

솔루션 접근 방식

문제의 해결책은 시리즈를 디코딩하는 데 있습니다. 시리즈가 혼합된 시리즈임을 알 수 있습니다.

값 빼기,

T(2) - T(1) = 15 - 7 = 8
T(3) - T(2) = 32 - 15 = 17

So, T(2) = 2*T(1) + 1
T(3) = 2*T(2) + 2

T(n) = 2*T(n-1) + (n-1)

따라서 n번째 항의 값은 마지막 항을 사용하여 구합니다. 이를 찾으려면 1에서 n까지 반복하고 계열의 각 값을 찾습니다.

우리 솔루션의 작동을 설명하는 프로그램

예시

#include <iostream>
using namespace std;
int findNthTerm(int n) {
   if (n == 1)
      return 7;
   int termN = 7;
   for (int i = 2; i <= n; i++)
      termN = 2*termN + (i - 1);
   return termN;
}
int main(){
   int n = 12;
   cout<<"The series is 7, 15, 32, 67...\n";
   cout<<n<<"th term of the series is "<<findNthTerm(n);
   return 0;
}

출력

The series is 7, 15, 32, 67...
12th term of the series is 18419