C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++でN番目の偶数フィボナッチ数を見つけるプログラム


この問題では、整数値Nが与えられます。私たちのタスクはN番目の偶数フィボナッチ数を見つけることです。 。

フィボナッチ数列は、前の2つの数値を加算することにより、後続の数値を生成します。フィボナッチ数列は、F0とF1の2つの数字から始まります。 F0とF1の初期値は、それぞれ0、1、または1、1にすることができます。

問題を理解するために例を見てみましょう

Input : N = 4
Output : 144

ソリューションアプローチ

この問題の簡単な解決策は、フィボナッチ数列の3つおきの数が偶数であり、偶数の数列も再帰式に従うという事実を使用することです。

フィボナッチ数列の再帰式は-

です。

Ef(n)=4Ef(n-1)+ Ef(n-2)ここで、Ef(0)=0およびEf(1)=2

3つおきのフィボナッチ数が偶数であることがわかっているため、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

  1. 数の偶数の因数の合計を見つけるC++プログラム?

    このセクションでは、効率的な方法で、ある数のすべての素因数の合計を取得する方法を説明します。 n =480と言う数があります、これのすべての要因を取得する必要があります。 480の素因数は2、2、2、2、2、3、5です。すべての偶数の因数の合計は2 + 2 + 2 + 2 + 2 =10です。この問題を解決するには、この規則に従う必要があります。 − 数値が2で割り切れる場合は、それらを合計に加算し、数値を2で繰り返し除算します。 今、数は奇数でなければなりません。したがって、均等な要素は見つかりません。次に、それらの要因を単に無視します。 より良いアイデアを得るためのアル

  2. PythonでN番目のフィボナッチ数を見つけるプログラム

    数nがあるとすると、n番目のフィボナッチ項を見つける必要があります。 i番目のフィボナッチ項f(i)=f(i-1)+ f(i-2)がわかっているので、最初の2つの項は0、1です。 したがって、入力が15のような場合、出力は610になります。 これを解決するには、次の手順に従います- 最初:=0、2番目:=1 2からnの範囲のiについては、 temp:=1番目+2番目 最初:=2番目 秒:=一時 2番目に戻る 理解を深めるために、次の実装を見てみましょう- 例 class Solution:    def solve(self, n):   &n