AlgorithmGossip: 費(fèi)式數(shù)列
說(shuō)明
Fibonacci為1200年代的歐洲數(shù)學(xué)家,在他的著作中曾經(jīng)提到:「若有一只免子每個(gè)月生一只小免子,一個(gè)月后小免子也開始生產(chǎn)。起初只有一只免子,一個(gè)月后就有兩只免子,二個(gè)月后有三只免子,三個(gè)月后有五只免子(小免子投入生產(chǎn))......。
如果不太理解這個(gè)例子的話,舉個(gè)圖就知道了,注意新生的小免子需一個(gè)月成長(zhǎng)期才會(huì)投入生產(chǎn),類似的道理也可以用于植物的生長(zhǎng),這就是Fibonacci數(shù)列,一般習(xí)慣稱之為費(fèi)氏數(shù)列,例如以下: 1、1 、2、3、5、8、13、21、34、55、89......
解法
依說(shuō)明,我們可以將費(fèi)氏數(shù)列定義為以下:
fn = fn-1 + fn-2 if n > 1
fn = n if n= 0, 1
namespace 費(fèi)式數(shù)列 { class Program { static void Fib(int n) { int [] a=new int [n+1]; a[0] = 0; a[1] = 1; for (int i=2; i < n + 1; i++) { a[i] = a[i - 1] + a[i - 2];//第N個(gè)月的兔子數(shù)是N-1和N-2個(gè)月的兔子數(shù)的總和。因?yàn)镹-1月的新生小兔子的數(shù)量是,N-2兔子的數(shù)量。 } Console.WriteLine("第{0}個(gè)月的兔子數(shù)量為{1}",n,a[n]); } static void Main(string[] args) { Console.WriteLine("親,幾個(gè)月了!"); int a = int.Parse(Console.ReadLine()); Fib(a); Console.Read(); } } }
創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國(guó)云服務(wù)器,動(dòng)態(tài)BGP最優(yōu)骨干路由自動(dòng)選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動(dòng)現(xiàn)已開啟,新人活動(dòng)云服務(wù)器買多久送多久。