今日の人気記事

  1. プログラムの書式 - プログラムの基本
  2. 入力した2つの数値を交換する
  3. 入力した2つの自然数の最大公約数を求める
  4. 入力した2つ数値の大小を判定する

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

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

スポンサーリンク

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

フィボナッチ数

\(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. 10進数を2進数に変換する
  3. サンプルプログラム集
  4. 入力した2つの数値を交換する
  5. 入力した文字列の文字数を表示する(出力)
  6. 入力した行列の積(掛け算)を計算する
  7. 乱数 - 1〜10のランダムな数値を出力する
  8. 入力した整数が偶数か奇数かを判別する
  9. 配列に格納した数値を降順ソートする
  10. 入力した自然数の約数を求める

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