費式数列のC言語実現


Fibonacciは1200年代のヨーロッパの数学者で、著書の中で「1匹の免子が毎月1匹の小免子を産むと、1ヶ月後に小免子も生産を開始する.最初は1匹の免子しかなく、1ヶ月後には2匹の免子があり、2ヶ月後には3匹の免子があり、3ヶ月後には5匹の免子(小免子が生産に投入される)がある......」と述べている.この例をよく理解していなければ、図を挙げると分かるように、新生の小免子に注意するには1ヶ月が長期にわたって生産を開始する必要があり、同様の道理で植物の成長にも用いることができる.これがFibonacci数列であり、一般的にはフェルト数列と呼ばれている.例えば以下:1、1、2、3、5、8、13、21、34、55、89......
 
解法
説明するように、フェルト数列は以下のように定義できます.
fn = fn-1 + fn-2     if n > 1
fn = n       if n = 0, 1 
 
C言語実現
#include <stdio.h> 
#include <stdlib.h> 

#define N 20 

int main(void) { 
    int Fib[N] = {0}; 
    int i; 

    Fib[0] = 0; 
    Fib[1] = 1; 

    for(i = 2; i < N; i++) 
        Fib[i] = Fib[i-1] + Fib[i-2]; 

    for(i = 0; i < N; i++) 
        printf("%d ", Fib[i]); 
    printf("
"); return 0; }