C++程序:查找第N个偶数斐波那契数


在这个问题中,我们给定一个整数N。我们的任务是找到第N个偶数斐波那契数

斐波那契数列通过将前两个数相加来生成后续的数。斐波那契数列从两个数开始 - F0 & F1。F0 & F1 的初始值可以分别取 0, 1 或 1, 1。

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

Input : N = 4
Output : 144

解决方案

解决这个问题的一个简单方法是利用斐波那契数列中每三个数就有一个偶数,并且偶数序列也遵循递归公式这一事实。

偶数斐波那契数列的递归公式为 -

Ef(n)= 4Ef(n-1) + Ef(n-2) 其中 Ef(0)=0 且 Ef(1)=2

我们知道,每三个斐波那契数中就有一个是偶数,因此 f(n-3) 和 f(n-6) 都是偶数。所以,我们将 f(n) 视为第 k 个元素,并表示为 Ef(k)。如果 f(n) 是 Ef(k),则 f(n-3) 是前一个偶数,表示为 Ef(k-1),因此 f(n-6) 是 Ef(k-1) 的前一个,即 Ef(k-2)。

因此 f(n)=4f(n-3)+f(n-6)

或者,Ef(k)=4Ef(k-1) + Ef(k-2)。

示例

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

#include<iostream>
using namespace std;
int findNthEvenFiboNum(int n){
   if (n < 1)
      return n;
   if (n == 1)
      return 2;
   return ((4 * findNthEvenFiboNum(n-1)) + findNthEvenFiboNum(n- 2));
}
int main (){
   int n = 5;
   cout<<n<<"th even fibonacci number is "<<findNthEvenFiboNum(n);
   return 0;
}

输出

5th even fibonacci number is 610

更新于: 2022年2月11日

534 次查看

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告

© . All rights reserved.