斐波那契數(shù)列指的是這樣一個(gè)數(shù)列:1, 1, 2, 3, 5, 8, 13 …,從第三項(xiàng)開始,每一項(xiàng)都等于前兩項(xiàng)之和。
創(chuàng)新互聯(lián)于2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站制作、做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢想脫穎而出為使命,1280元黃浦做網(wǎng)站,已為上家服務(wù),為黃浦各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:13518219792
int fibonacci(int n)for(n=0;n=100;n++){ j= fibonacci(int n);printf(%d ,j);} } int fibonacci(int n) //參數(shù)n為數(shù)列的第n項(xiàng)。{ if(n=2) //此處要包括第二項(xiàng),也是遞歸出口。
f⑵=C(1,0)=1。f⑶=C(2,0)+C(1,1)=1+1=2。f⑷=C(3,0)+C(2,1)=1+2=3。f⑸=C(4,0)+C(3,1)+C(2,2)=1+3+1=5。f⑹=C(5,0)+C(4,1)+C(3,2)=1+4+3=8。
1、int fibonacci(int n){ if(n == 1 || n == 2)// 遞歸結(jié)束的條件,求前兩項(xiàng) return 1;else return fibonacci(n-1)+fibonacci(n-2);// 如果是求其它項(xiàng),先要求出它前面兩項(xiàng),然后做和。
2、這個(gè)可以通過遞歸求解的。也可以通過補(bǔ)充你寫的sum函數(shù)來完成。
3、n-2);} void main(){ int i = 0;for(i=1;i=N;i++){ printf(%5d,F(xiàn)ibonacci(i));if(i%5 == 0)printf(\n);} printf(\n);} 只要修改宏定義N的值,就可以輸出斐波那契數(shù)列的前N項(xiàng)。
4、輸入如圖所示的代碼,這里以前十個(gè)斐波那契數(shù)列數(shù)為例,需要輸出其他個(gè)數(shù)請把5改成對應(yīng)數(shù)字的一半(比如要輸出前20個(gè),就把圖中的5改成10);點(diǎn)擊右上角的編譯運(yùn)行按鈕。
5、n){ if(n == 1 || n == 2)// 遞歸結(jié)束的條件,求前兩項(xiàng) return 1;else return Fibonacci(n-1)+Fibonacci(n-2);// 如果是求其它項(xiàng),先要求出它前面兩項(xiàng),然后做和。
只要修改宏定義N的值,就可以輸出斐波那契數(shù)列的前N項(xiàng)。
fun(int n){ if(n == 1 || n == 2)// 遞歸2113結(jié)束百的條件,求前5261兩項(xiàng)度 return 1;else return fun(n-1)+ fun(n-2);// 如果是求其它項(xiàng)知,先4102要求出它道前1653面兩項(xiàng),然后版內(nèi)做和。
用C語言求斐波那契數(shù)列的一種常見方法是使用遞歸函數(shù),即定義一個(gè)函數(shù)fib(n),返回第n項(xiàng)的值,然后在函數(shù)體中調(diào)用fib(n-1)和fib(n-2)。這種方法雖然簡單,但是效率很低,因?yàn)闀貜?fù)計(jì)算很多次相同的值。
樓上說的同時(shí)執(zhí)行,我愚見覺得是不對的。應(yīng)該是先執(zhí)行bashan(n-1),然后再執(zhí)行n-2的那句。兩個(gè)都是分別執(zhí)行遞歸到計(jì)算出結(jié)果后,相加作為 返回值 。也就是類似一個(gè) 二叉樹 的 先序遍歷 差不多的感覺。
用C語言編程 斐波那契數(shù)列:1,1,2,3,5,8,13…,輸出前13項(xiàng),每行輸出5個(gè)數(shù)。
10]={1,1};printf(%d %d ,F(xiàn)[0],F(xiàn)[1]);for(i=2;i10;i++){F[i]=F[i-1]+F[i-2];printf(%d ,F(xiàn)[i]);}}運(yùn)行結(jié)果:只用了兩個(gè)變量:整型變量i,一維數(shù)組變量F[10]而且沒有用遞歸的方法。