前回は再帰呼び出しを用いたフィボナッチ数列の求め方をやりましたが、今回は非再帰的な方法で求めるプログラムです。
写真では見にくい方はこちらをどうぞ
#include <stdio.h>
#define NUMBER 100
int main(void){
int num=0; //項数を格納する変数
int fibo[NUMBER]={0,1}; //Fnの値を格納する変数
int cnt=0; //加算回数を格納する変数
int i; //for文のための変数
printf("第何項のフィボナッチ数Fnを求めますか?:");
scanf("%d",&num);
if(num>=2){
for(i=2;i<=num;i++){
fibo[i]=fibo[i-1]+fibo[i-2];
cnt++;
}
}
printf("第%d項のフィボナッチ数列は%dです。\n",num,fibo[num]);
printf("加算回数は%d回です。\n",cnt);
return(0);
}
僕が使っている参考書
|
再帰的関数を用いた場合のプログラムはこちら