フィボナッチ数列 C++

Fibonatchi Shu Lie C



フィボナッチ数列/フィボナッチ数列は、シリーズの最後の 2 つの数の合計を取得することによって次の数が得られるときに作成される一連の数です。最初の 2 つの数値は常に 0 と 1 です。フィボナッチ数列はどのプログラミング言語でも取得できますが、ここでは C++ プログラミング言語のソース コードを適用します。数学では、フィボナッチ数列は、サンプル式を持つ再帰関係を通じて説明されます。

Fn = Fn-1 + Fn-2

このチュートリアルには、一連のフィボナッチ数を作成するためのさまざまな方法論が含まれています。







例 1



この例では、最初に入力ストリームと出力ストリームのライブラリを使用して cin ストリームと cout ストリームを有効にし、このライブラリを通じてユーザーの関与も促進しています。メイン プログラム内で、2 つの整数型変数を取り、それらにゼロ値を宣言します。別の nextterm 変数も使用されます。この変数は、ゼロとして初期化され、後で使用できるように配置されます。フィボナッチ数列で必要な数値を入力するようユーザーに求めます。つまり、出力として表示される行数は、ユーザーの入力に依存します。ユーザーが入力する特定の番号、結果にはこれらの行に回答が含まれます。







ユーザーが数列を計算するために入力する特定の数値まで反復するには、「for」ループが必要です。これは、数行による一種の制限です。番号を確認するために if ステートメントが使用されます。ある場合は、そのまま表示します。同様に、2 番目の数字も同様に表示されます。フィボナッチ数列では、最初の 2 つの数値が表示されます。先に進むために、continue ステートメントを使用しました。シリーズをさらに計算するには、両方の値を追加します。そして、これはシリーズの 3 番目の番号になります。そのスワッピング プロセスが開始された後、最初の変数には 2 番目の変数の値が割り当てられ、2 番目の変数には nextterm 変数に格納された 3 番目の値が含まれます。

次期 = t1 + t2;



T1 = t2;

T2 =次期;

これで、各値がコンマで区切られて表示されます。コンパイラを介してコードを実行します。 「-o」は、入力ファイルに存在するコードの出力を保存するために使用されます。

$ g++ -O fib fib.c
$ . / フィブ

プログラムが実行されると、ユーザーは 7 と入力した数字を入力するように求められ、フィボナッチ数列がどの時点で 7 番目のポイントに達したかに関係なく、結果は 7 行になることがわかります。

例 2

この例には、nextterm 値を制限することによるフィボナッチ数列の計算が含まれます。つまり、フィボナッチ数列は、必要な範囲で指定された数を提供することによってカスタマイズできるということです。前の例とは異なり、結果は行数ではなく、数値で指定されたシリーズの数に依存します。メインプログラムから始めます。変数は同じで、ユーザー関与のアプローチも同じです。したがって、最初の 2 つの変数は最初にゼロとして初期化され、nextterm 変数はゼロとして宣言されます。次に、ユーザーが番号を入力します。常に 0 と 1 である最初の 2 つの項が表示されます。

nextterm の値には、最初の 2 つの変数に存在する数値を加算して得られる値が割り当てられます。ここでは while ループを使用して、 nextterm 変数の値がユーザーが指定した数値以下になるまでシリーズを作成する条件を適用しています。

while (nextterm <= n)

この while ループ内では、数値を逆方向に入れ替えることでロジックが適用されます。 nextterm 変数は、再び変数の値を追加します。

次期 = t1 + t2;

ファイルを保存してコンパイルし、ターミナルでコードを実行します。

コードを実行すると、システムは正の数でなければならない数を要求します。計算すると、55 番目の数字までの一連の数字が表示されます。

例 3

言及するこのソース コードには、フィボナッチ数列を計算する別の方法が含まれます。これまで、メイン プログラム内でシリーズを計算してきました。この例では、別の関数を使用して、この数列を計算します。関数内で、プロセスを続行するために再帰呼び出しが行われます。したがって、これは再帰の例でもあります。この関数は、シリーズが計算されるまでの数値をパラメータに取ります。この番号は、メイン プログラムから送信されます。 if ステートメントを使用して、数値が 1 以下かどうかを確認し、数値自体を返します。これは、系列を計算するために少なくとも 2 つの数値が必要であるためです。 2 番目のケースでは、条件が false になり、数値が 1 より大きい場合、関数自体への再帰呼び出しを繰り返し使用して系列を計算します。

Fib (n-1) + fib (n-2);

これは、最初の部分で、合計数の 1 つ前の数値が関数に渡され、その値が、合計数の 2 つ前の数値をパラメーターとして含むセルから取得された数値から減算されることを示しています。

メインプログラムでは、番号が変数に割り当てられ、最初の関数呼び出しが行われ、関数に番号が渡されます。ここで、ターミナルでファイルのソース コードを実行して、答えを取得します。ここでは、「13」が答えであることがわかります。入力された数字は 7 だったので、シリーズは 0+1+1+2+3+5+8+13 になります。

例 4

この例には、フィボナッチ数列を計算する OOP (オブジェクト指向プログラミング) アプローチが含まれます。クラス GFG が作成されます。パブリック部分では、フィボナッチ数列を格納する配列を持つ関数が作成されます。

F [n + 2];

ここで n は、最初に 0 として宣言された数値です。

F[0] = 0;

F[1] = 1;

インデックス 0 と 1 の数値は 0 と 1 として宣言されます。

その後、フィボナッチ数列が計算される「for」ループが使用されます。前の 2 つの数値がシリーズに追加され、保存されます。

F[i] = f[i-1] + f[i -2];

その後、特定のインデックスの特定の番号が返されます。

関数呼び出しは、オブジェクトを使用して行われます。

g.fib(n);

コードを実行すると、数字が 11 であるため、シーケンスは 11 桁目までになることがわかります。

結論

この記事「フィボナッチ数列 C++」は、前の 2 つの数値を加算して数列を作成するために使用されるさまざまなアプローチを組み合わせたものです。再帰法に加えて、単純なスワッピング手法と配列の助けを借りて、これらの数値を連続して生成できます。フィボナッチ数列を作成するには、数値を整数データ型にすることをお勧めします。行数とシーケンスの数に制限を適用することで、シリーズを計算できます。