在系列 7、15、32、… 中找到第 n 项的 C++ 程序


在这个问题中,我们给定了一个整数 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<<"th term of the series is "<<findNthTerm(n);
   return 0;
}

输出

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

更新日期: 13-Mar-2021

136 个浏览量

启动您的职业生涯

通过完成课程获得认证

开始学习
广告
© . All rights reserved.