今日の人気記事

  1. サンプルプログラム集
  2. 入力した2つの数値を交換する
  3. 文字 - char型
  4. 乱数 - 0〜1のランダムな数値を出力
  5. for文 - 1つ飛ばしの繰り返し処理を実行する(奇数・偶数)

フィボナッチ数の計算する

当ページのリンクには広告が含まれています。

スポンサーリンク

ここでは「フィボナッチ数を計算」し、フィボナッチ数列を表示するサンプルプログラムを紹介します。

フィボナッチ数

\(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

このように計算したフィボナッチ数が出力されます。

サンプルプログラム の人気記事

  1. 入力した自然数を逆順に並べ替える
  2. サンプルプログラム集
  3. 配列に格納した数値を昇順ソートする
  4. 2次方程式の解を計算する
  5. 入力した2つの数値を交換する
  6. 入力した自然数の約数を求める
  7. フィボナッチ数の計算する
  8. 10進数を2進数に変換する
  9. 入力した文字列の文字数を表示する(出力)
  10. 入力した行列の積(掛け算)を計算する

関連記事(一部広告含む)