程序在C ++中找到系列0、2、1、3、1、5、2、7、3 ...的第N个项

在本教程中,我们将讨论一个程序以查找系列0、2、1、3、1、5、2、7、3的第N个项。

为此,我们将提供一个号码。我们的任务是在特定位置找到给定系列的术语。

示例

#include<bits/stdc++.h>
#define MAX 1000
using namespace std;
//查找第n个质数
int NthPrime(int n) {
   int count = 0;
   for (int i = 2; i <= MAX; i++) {
      int check = 0;
      for (int j = 2; j <= sqrt(i); j++) {
         if (i % j == 0) {
            check = 1;
            break;
         }
      }
      if (check == 0)
         count++;
      if (count == n) {
         return i;
         break;
      }
   }
}
//查找第n个斐波那契数
int NthFib(int n) {
   int f[n + 2];
   int i;
   f[0] = 0;
   f[1] = 1;
   for (i = 2; i <= n; i++) {
      f[i] = f[i - 1] + f[i - 2];
   }
   return f[n];
}
void findNthTerm(int n) {
   //如果甚至
   if (n % 2 == 0) {
      n = n / 2;
      n = NthPrime(n);
      cout << n << endl;
   }
   //如果是奇数
   else {
      n = (n / 2) + 1;
      n = NthFib(n - 1);
      cout << n << endl;
   }
}
int main() {
   int X = 5;
   findNthTerm(X);
   X = 10;
   findNthTerm(X);
   return 0;
}

输出结果

1
11
猜你喜欢