在这个问题中,我们得到一个整数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