再帰関数を使用してフィボナッチ数列を第0項から第n項まで求める。関数fibonacciに2より小さい値nを渡すとnを返し、2より大きい値だとfibonacci(n-1)+fibonacci(n-2)を返すと簡単にフィボナッチ数列を求めるプログラムを作成できる。任意の階乗を求めるプログラム と同じようなプログラムである。
#include<stdio.h>
int fibonacci(int);
int main(void) {
//フィボナッチ数列を第0項から第n項まで求めるプログラムである。(再帰関数使用)
int h,i;
printf("フィボナッチ数列を第n項まで求める。\n");
printf("nを入力せよ\n");
scanf("%d",&h);
for(i=0;i<=h;i++){
printf("第%d項=%d\n",i,fibonacci(i));
}
return 0;
}
int fibonacci(int n) {
int fibonacci(int);
return n<2?n:fibonacci(n-1)+fibonacci(n-2);
}
これを実行する。
C:\>0814.exe
フィボナッチ数列を第n項まで求める。
nを入力せよ
10
第0項=0
第1項=1
第2項=1
第3項=2
第4項=3
第5項=5
第6項=8
第7項=13
第8項=21
第9項=34
第10項=55