您好,登錄后才能下訂單哦!
AlgorithmGossip: 費(fèi)式數(shù)列
說明
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......
解法
依說明,我們可以將費(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(); } } }
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。