在系列 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
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 程序设计
C++
C#
MongoDB
MySQL
Javascript
PHP