フィボナッチ数の計算する
当ページのリンクには広告が含まれています。
スポンサーリンク
ここでは「フィボナッチ数を計算」し、フィボナッチ数列を表示するサンプルプログラムを紹介します。
フィボナッチ数
\(n\)番目のフィボナッチ数\(F_n\)は
\[ \begin{aligned} F_0 &= 0\\ F_1 &= 1\\ F_{n+2} &= F_{n} + F_{n+1} (n\geq1) \end{aligned} \]で定義されます。
実際に\(n=0\)から計算してみると \[ \begin{aligned} F_0 &= 0\\ F_1 &= 1\\ F_2 &= 1 = 0 + 1\\ F_3 &= 2 = 1 + 1\\ F_4 &= 3 = 1 + 2\\ F_5 &= 5 = 2 + 3\\ F_6 &= 8 = 3 + 5\\ F_7 &= 13 = 5 + 8\\ \cdots \end{aligned} \]
となり、計算結果を並べた数列
0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,...
を「フィボナッチ数列」といいます。
それではプログラムでフィボナッチ数を計算してみましょう。
サンプルプログラム
10000より小さいフィボナッチ数を計算するサンプルプログラムです。
/* * C言語のサンプルプログラム - Webkaru * - フィボナッチ数の計算 - */ #include <stdio.h> int main(void) { /* 変数の宣言 */ int n; int f0, f1, f2; f0 = 0; f1 = 1; /* フィボナッチ数(n=0)の出力 */ printf("%d\n", f0); /* フィボナッチ数の計算 */ while(f1<100000) { // フィボナッチ数の出力(n>0) printf("%d\n", f1); // フィボナッチ数の計算 f2 = f1 + f0; // 変数の代入 f0 = f1; f1 = f2; } return 0; }
実行結果です。
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368 75025
このように計算したフィボナッチ数が出力されます。