Learn-c-by-examples-fibonacci-non-recursive-program-in-c

提供:Dev Guides
移動先:案内検索

Cのフィボナッチ数列プログラム

フィボナッチ数列は、2つの以前の数値を追加することにより、後続の数値を生成します。 フィボナッチ数列は、F〜0〜とF〜1〜の2つの数字から始まります。 F〜0〜およびF〜[.small]#1#〜の初期値は、それぞれ0、1、または1、1になります。

フィボナッチ数列は次の条件を満たす-

Fn = Fn-1 + Fn-2

フィボナッチ数列は次のようになります-

F〜8〜= 0 1 1 2 3 5 8 13

または、これ-

F〜8〜= 1 1 2 3 5 8 13 21

アルゴリズム

このプログラムのアルゴリズムは非常に簡単です-

START
   Step 1 → Take integer variable A, B, C
   Step 2 → Set A = 0, B = 0
   Step 3 → DISPLAY A, B
   Step 4 → C = A + B
   Step 5 → DISPLAY C
   Step 6 → Set A = B, B = C
   Step 7 → REPEAT from 4 - 6, for n times
STOP

疑似コード

procedure fibonacci : fib_num

   IF fib_num less than 1
      DISPLAY 0

   IF fib_num equals to 1
      DISPLAY 1

   IF fib_num equals to 2
      DISPLAY 1, 1

   IF fib_num greater than 2
      Pre = 1,
      Post = 1,

      DISPLAY Pre, Post
      FOR 0 to fib_num-2
         Fib = Pre + Post
         DISPLAY Fib
         Pre = Post
         Post = Fib
      END FOR
   END IF

end procedure

実装

このアルゴリズムの実装は以下のとおりです-

#include <stdio.h>

int main() {
   int a, b, c, i, n;

   n = 4;

   a = b = 1;

   printf("%d %d ",a,b);

   for(i = 1; i <= n-2; i++) {
      c = a + b;
      printf("%d ", c);

      a = b;
      b = c;
   }

   return 0;
}

出力

プログラムの出力は次のようになります-

1 1 2 3