C ++程序在系列9、33、73,129中找到第n个项…

在这个问题中,我们得到一个整数N。任务是在系列9、33、73、129 ...中找到第n个项。

让我们举个例子来了解这个问题,

输入

N = 4
输出结果
129

解释

第n项之前的序列是9,33,73,129 ...

解决方法

解决该问题的方法在于找到级数的第n个项。我们将在数学上找到它,然后将通用术语公式应用于我们的程序。

首先,让我们通过将序列移动一个来减去该序列。

Sum = 9 + 33 + 73 + … + t(n-1) + t(n)
- Sum = 9 + 33 + 73 + …. + t(n-1) + t(n)

0 = 9 + ((33- 9) + (73 - 33) + … + (tn) - t(n-1)) - t(n)
t(n) = 9 + (24 + 40 + 56 + …. )

24 + 40 + 56 + …. is an A.P. series with common difference 16.

这就是一般术语,

t(n) = 9 + [((n-1)/ 2)*(2 *(24)+(n-1-1)* 16)]

$$t(n)= 9 + [\ left(\ frac {n-1} {2} \ right)*(((2 * 24)+(n-2)* 16)] $$$$t(n)= 9 + [\ left( \ frac {n-1} {2} \ right)*((2 * 24)+(n-2)* 8)] $$

t(n) = 9 + [(n-1)*((24)+(n-2)* 8]

t(n) = 9 + [(n-1)*((24)+ 8n-16]

t(n) = 9 + [(n-1)*(8 + 8n]

t(n) = 9 + 8 * [(n-1)*(n + 1)]

t(n)= 9 + 8 * [N 2 - 1 2 ]

t(n)= 9 + 8 * N 2 - 8

t(n)= 8 * n 2 +1

该程序说明了我们解决方案的工作原理,

示例

#include <iostream>
using namespace std;
int findNthTerm(int n) {
   return (8*n*n) + 1 ;
}
int main(){
   int n = 12;
   cout<<"The series is 9, 33, 73, 129...\n";
   cout<<n<<"t该系列的h项是 "<<findNthTerm(n);
   return 0;
}
输出结果
The series is 9, 33, 73, 129...
12t该系列的h项是 1153