もどくんちゃんねる ガジェット部

自転車、ガジェット、映像制作、CG、Blender など

C言語 フィボナッチ数列を求めるプログラムの解説 (非再帰的 再帰的関数を用いない場合)

 f:id:KANSONINGEN:20190512112101p:plain

前回は再帰呼び出しを用いたフィボナッチ数列の求め方をやりましたが、今回は非再帰的な方法で求めるプログラムです。

写真では見にくい方はこちらをどうぞ

 

 

#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);

}

 

 

僕が使っている参考書

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

新・明解C言語(入門編) [ 柴田望洋 ]
価格:2484円(税込、送料無料) (2019/5/16時点)

楽天で購入

 

 

 

 

再帰的関数を用いた場合のプログラムはこちら

deziowata.hateblo.jp