在 C++ 中查找给定序列 0, 0, 2, 1, 4, 2, 6, 3, 8, 4… 的第 n 项


在这个问题中,我们给定一个整数 N。我们的任务是查找给定序列的第 n 项 -

0, 0, 2, 1, 4, 2, 6, 3, 8, 4, 10, 5, 12, 6, 14, 7, 16, 8, 18, 9, 20, 10… 

让我们举个例子来理解这个问题,

Input − N = 6
Output − 2

解决方案方法

要找到序列的第 N 项,我们需要仔细观察序列。它是两个序列的混合,以及序列的奇数项和偶数项。让我们看看它们中的每一个,

在偶数位置 -

  • T(2) = 0
  • T(4) = 1
  • T(6) = 2
  • T(8) = 3
  • T(10) = 4

如果 n 为偶数,则 T(n) 的值为 {(n/2) - 1}

在奇数位置 -

  • T(1) = 0
  • T(3) = 2
  • T(5) = 4
  • T(7) = 6
  • T(9) = 4

如果 n 为偶数,则 T(n) 的值为 {n - 1}

示例

程序说明我们解决方案的工作原理

#include <iostream>
using namespace std;
bool isEven(int n){
   if(n % 2 == 0)
      return true;
   return false;
}
int findNthTerm(int n){
if (isEven(n))
      return ((n/ 2) - 1);
   else
      return (n - 1);
}
int main(){
   int N = 45;
   cout<<N<<"th term of the series is "<<findNthTerm(N);
   return 0;
}

输出

45th term of the series is 44

更新于: 2022-01-24

415 次查看

启动你的 职业生涯

通过完成课程获得认证

开始
广告