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
-
数の偶数の因数の合計を見つけるC++プログラム?
このセクションでは、効率的な方法で、ある数のすべての素因数の合計を取得する方法を説明します。 n =480と言う数があります、これのすべての要因を取得する必要があります。 480の素因数は2、2、2、2、2、3、5です。すべての偶数の因数の合計は2 + 2 + 2 + 2 + 2 =10です。この問題を解決するには、この規則に従う必要があります。 − 数値が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