在这个问题中,我们得到一个整数N。任务是在系列7、15、32 ...中找到第n个项。
让我们举个例子来了解这个问题,
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<<"t该系列的h项是 "<<findNthTerm(n); return 0; }输出结果
The series is 7, 15, 32, 67... 12t该系列的h项是 18419