C ++程序在系列7、15、32,...中找到第n个术语

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

以上是 C ++程序在系列7、15、32,...中找到第n个术语 的全部内容, 来源链接: utcz.com/z/352724.html

回到顶部