用C語言求解第N項(xiàng)斐波那契數(shù)列問題
求解第N項(xiàng)斐波那契數(shù)列
斐波那契數(shù)列指的是這樣一個(gè)數(shù)列:1,1,2,3,5,8,13,21,34,55,89...
這個(gè)數(shù)列從第3項(xiàng)開始,每一項(xiàng)都等于前兩項(xiàng)之和。斐波那契數(shù)列,又稱黃金分割數(shù)列,顯然它又是一個(gè)線性遞推數(shù)列,由數(shù)學(xué)家萊昂納多·斐波納契首次引入此概念。在現(xiàn)代的物理,化學(xué),生物等諸多領(lǐng)域,皆有重大影響。
在此求解過程中,我用了if 語句和for循環(huán)。話不多說,我就直接上代碼了。
#include<stdio.h> //1,1,2,3,5,8,13,21,34 int main(void) { int n, i; int f1, f2, f3; f1=1; f2=1; printf("請(qǐng)輸入您需要求的序列:"); scanf("%d",&n); if(n==1) { f3=1; } else if(n==2) { f3=1; } else { for(i=3; i<=n; i++) { f3 = f1 + f2; f1 = f2; f2 = f3; } } printf("%d\n",f3); return 0; }
求解斐波那契數(shù)列的前n項(xiàng)并輸出及兔子繁殖問題
斐波那契數(shù)列的定義
F1=1
F2=1
…
Fn=F(n-1)+F(n-2)
從第三項(xiàng)開始每一項(xiàng)的值都等于前一項(xiàng)加上前兩項(xiàng)的和。
算法思路
可以使用整型數(shù)組來存儲(chǔ)每一項(xiàng)的值,前兩項(xiàng)不能使用Fn的通項(xiàng)公式,所以得和其他項(xiàng)區(qū)別計(jì)算,當(dāng)輸入總項(xiàng)數(shù)n后,我們定義一個(gè)大小為n的整型數(shù)組,然后使用一個(gè)for循環(huán)去計(jì)算從1到n的數(shù)列值,其中需要嵌套一個(gè)switch選擇語句用于區(qū)別前兩項(xiàng)和其他項(xiàng)的計(jì)算,switch語句后再加上一個(gè)printf輸出函數(shù)用于輸出每一項(xiàng)的數(shù)列值。
代碼實(shí)現(xiàn)
#include<stdio.h> void main() { int n; printf("請(qǐng)輸入需求的斐波那契數(shù)列總項(xiàng)數(shù):\n"); scanf("%d",&n); system("cls");//清屏輸出結(jié)果 int f[n];//定義整型數(shù)組來存儲(chǔ)每一項(xiàng)數(shù)列的值 for(int i=0;i<n;i++) { switch(i) { case 0: f[i]=1;//第一項(xiàng)值為1 break; case 1: f[i]=1;//第二項(xiàng)值為2 break; default: f[i]=f[i-1]+f[i-2]; break; } printf("F%d=%d\n",i+1,f[i]);//因?yàn)閿?shù)組的下標(biāo)從0開始,數(shù)列的下標(biāo)從1 //開始,所以i需要加1. } }
輸出結(jié)果:
F1=1
F2=1
F3=2
F4=3
F5=5
F6=8
F7=13
F8=21
F9=34
F10=55
F11=89
F12=144
兔子繁殖問題
(1) 問題描述
兔子在出生兩個(gè)月后,就有繁殖能力,一對(duì)兔子每個(gè)月能生出一對(duì)小兔子來。如果所有兔子都不死,那么一年以后可以繁殖多少對(duì)兔子?
(2) 問題分析
第一個(gè)月只有一對(duì)兔子,而且前兩個(gè)月還沒有繁殖能力,所以第一個(gè)月和第二個(gè)月的兔子對(duì)數(shù)都為1,分別記為F1=1,F2=1,到了第三個(gè)月,第一個(gè)月的兔子繁殖出了一對(duì)新兔子此時(shí)F3=2,第四個(gè)月,第一個(gè)月的兔子繼續(xù)繁殖出一對(duì)新兔子,而第三個(gè)月繁殖出的新兔子還沒有繁殖能力,所以F4=3,依次類推,不難發(fā)現(xiàn)這是一個(gè)斐波那契數(shù)列,所以繁殖一年(12個(gè)月)后兔子對(duì)數(shù)為F12=144。注意第十三個(gè)月不能算入內(nèi)。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
C語言基于graphics.h實(shí)現(xiàn)圣誕樹
這篇文章主要介紹了圣誕樹代碼,c語言編程,基于graphics.h實(shí)現(xiàn),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-12-12C++實(shí)現(xiàn)簡單職工信息管理系統(tǒng)
本文給大家分享的是使用C++實(shí)現(xiàn)簡單的職工信息管理系統(tǒng)的代碼,本系統(tǒng)采用了面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,所有的方法均以類為基礎(chǔ),感興趣的小伙伴們可以參考一下2015-08-08C++通過循環(huán)實(shí)現(xiàn)猜數(shù)字小游戲
這篇文章主要為大家詳細(xì)介紹了C++通過循環(huán)實(shí)現(xiàn)猜數(shù)字小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-09-09C語言實(shí)現(xiàn)的統(tǒng)計(jì)php代碼行數(shù)功能源碼(支持文件夾、多目錄)
這篇文章主要介紹了C語言實(shí)現(xiàn)的統(tǒng)計(jì)php代碼行數(shù)功能源碼,支持文件夾、多級(jí)目錄的統(tǒng)計(jì),在一些環(huán)境中會(huì)用到這個(gè)功能,需要的朋友可以參考下2014-08-08C語言實(shí)現(xiàn)電影院選座管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)電影院選座管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-12-12