斐波那契數(shù)列(Fibonacci sequence),又稱黃金分割數(shù)列,因數(shù)學(xué)家萊昂納多·斐波那契(Leonardo Fibonacci)以兔子繁殖為例子而引入,故又稱為“兔子數(shù)列”,指的是這樣一個數(shù)列:1、1、2、3、5、8、13、21、34、……在數(shù)學(xué)上,斐波那契數(shù)列以如下被以遞推的方法定義:F(0)=0,F(xiàn)(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)
成都創(chuàng)新互聯(lián)公司專注于武威企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站設(shè)計,商城網(wǎng)站開發(fā)。武威網(wǎng)站建設(shè)公司,為武威等地區(qū)提供建站服務(wù)。全流程定制設(shè)計,專業(yè)設(shè)計,全程項目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)
斐波那契數(shù)列指的是這樣一個數(shù)列:1,1,2,3,5,8,13,21,34,55,89…
這個數(shù)列從第3項開始,每一項都等于前兩項之和。
斐波那契數(shù)列是一個線性遞推數(shù)列
F(0)=0,F(xiàn)(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)
作為算法的入門題,實現(xiàn)斐波那契主要有兩種方法:遞歸和迭代
遞歸實現(xiàn)遞歸的實現(xiàn)方式簡單,但是會有一個很大的問題,那就是遞歸大量的重復(fù)計算會導(dǎo)致內(nèi)存溢出。
public int Fibonacci(int n) {if (n<= 0) {return 0;
}
if (n == 1||n==2) {return 1;
}
return Fibonacci(n - 2) + Fibonacci(n - 1);
}
迭代實現(xiàn)迭代法主要是使用兩個變量,將前面兩個數(shù)的計算結(jié)果保存下來,并進(jìn)行再次復(fù)用。
int Fibonacci(int number) {if (number<= 0) {return 0;
}
if (number == 1 || number == 2) {return 1;
}
//a代表第一個數(shù),b是第二個數(shù),c就是a+b的值
int a = 1, b = 1, c = 0;
//第三個數(shù)開始
for (int i = 3; i<= number; i++) {//每個數(shù)都等于前面兩個數(shù)之和
c = a + b;
a = b;
b = c;
}
return c;
}
斐波那契數(shù)列的應(yīng)用
兔子繁衍問題古典問題(兔子生崽):有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子 長到第三個月后每個月又生一對兔子,假如兔子都不死, 問每個月的兔子總數(shù)為多少?
跳臺階問題有一段樓梯,有 10 級臺階,規(guī)定每一步只能跨一級或兩級,要登上第 10 級臺階有幾種不同的走法?
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧