斐波那契數(shù)列(Fibonacci sequence),又稱黃金分割數(shù)列,因數(shù)學(xué)家萊昂納多·斐波那契(Leonardo Fibonacci)以兔子繁殖為例子而引入,故又稱為“兔子數(shù)列”,指的是這樣一個數(shù)列:1、1、2、3、5、8、13、21、34、……
在陽高等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè) 網(wǎng)站設(shè)計制作按需策劃,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計,全網(wǎng)整合營銷推廣,成都外貿(mào)網(wǎng)站建設(shè),陽高網(wǎng)站建設(shè)費用合理。在數(shù)學(xué)上,斐波那契數(shù)列以如下被以遞推的方法定義:F(0)=0,F(1)=1,?F(n)=F(n - 1)+F(n - 2)(n?≥ 2,n?∈ N*)
大致就是每一項都等于前兩項之和的數(shù)列
二. 實現(xiàn)斐波那契數(shù)列的兩種方式 1. 遞歸實現(xiàn)通過斐波那契數(shù)列的定義可以發(fā)現(xiàn)規(guī)律是:F(n) = F(n-1)+F(n-2),但前兩項都是1
代碼:
#includeint fib(int input){
if (input<= 2) {
return 1;//前兩項都為1,所以直接返回1即可
}
return fib(input - 1) + fib(input - 2);
}
void main() {
int input = 0;
scanf("%d",&input);
printf("第%d位斐波那契數(shù)為:%d",input,fib(input));
}
運行結(jié)果:
圖解:
注意:當(dāng)輸入的數(shù)較大時就會特別慢,原因是出現(xiàn)了很多的不必要的重復(fù)計算,極大的影響了計算效率
2. 循環(huán)實現(xiàn)(簡單高效)2.1 for循環(huán)實現(xiàn)
代碼:
#includeint fib(int input) {
int f1 = 1, f2 = 1, f3 = 1;
for (int i = 2; i< input;i++) {
f3 = f1 + f2;
f1 = f2;
f2 = f3;
}
return f3;
}
void main() {
int input = 0;
scanf("%d",&input);
printf("第%d位斐波那契數(shù)為:%d",input,fib(input));
}
2.2 while循環(huán)實現(xiàn)
代碼:
#includeint fib(int input) {
int f1 = 1, f2 = 1, f3 = 1;
while (input >2) {
f3 = f1 + f2;
f1 = f2;
f2 = f3;
input--;
}
return f3;
}
void main() {
int input = 0;
scanf("%d",&input);
printf("第%d位斐波那契數(shù)為:%d",input,fib(input));
}
斐波那契數(shù)列的實現(xiàn)方法有遞歸和循環(huán),但通過對比能看出來,遞歸過程中產(chǎn)生很多了多余的計算,使得遞歸算法的時間復(fù)雜度很大,所以我們更常用循環(huán)的方法實現(xiàn)。
關(guān)于C語言實現(xiàn)斐波那契數(shù)列的講解到這里就結(jié)束了,如果有什么不對的地方歡迎在評論區(qū)指正,謝謝支持~
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
文章名稱:【C語言】斐波那契數(shù)列-創(chuàng)新互聯(lián)
轉(zhuǎn)載注明:http://aaarwkj.com/article0/jccio.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機網(wǎng)站建設(shè)、商城網(wǎng)站、網(wǎng)站設(shè)計公司、軟件開發(fā)、網(wǎng)站建設(shè)、網(wǎng)站營銷
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容