數據結構簡單算法(2)費式數列

2.Algorithm Gossip: 費式數列

說明:Fibonacci爲1200年代的歐洲數學家,在他的着作中曾經提到:「若有一隻免子每個月生一隻小免 子,一個月後小免子也開始生產。起初只有一隻免子,一個月後就有兩隻免子,二個月後有三 只免子,三個月後有五隻免子(小免子投入生產)......。

如果不太理解這個例子的話,舉個圖就知道了,注意新生的小免子需一個月成長期纔會投入生產,類似的道理也可以用於植物的生長,這就是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

#include <stdio.h>
#define N 20
int main()
{
	int FIB[N]={0};
	FIB[0]=0;
	FIB[1]=1;
	for (int i=2;i<N;i++)
	{
		FIB[i]=FIB[i-1]+FIB[i-2];
	}
	for (i=0;i<N;i++)
	{
		printf("%d\n",FIB[i]);
	}
	return 0;
}

遞歸算法:

#include <stdio.h>
#define N 20
int FIB(int n)
{
	if (n<=1)
	{
		return n;
	}
	else
		return FIB(n-1)+FIB(n-2);
}
int main()
{
	for (int i=0;i<N;i++)
	{
		printf("%d\n",FIB(i));
	}
}



發佈了30 篇原創文章 · 獲贊 2 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章