c語言如何用陣列求fibonacci數列的前n項和

時間 2021-08-16 11:19:07

1樓:問明

#include

int main()

int i,f[21]=;//對最前面兩個元素f[0]和f[1]賦初值1

for(i=2;i<21;i++)

f=f[i-2]+f[i-1];//先後求出f[2]~f[20]的值

for(i=0;i<21;i++)

if(i%5==0)//控制每輸出5個數後換行

printf("\n");

printf("%d\t",f);//輸出一個數

printf("\n");

return 0;

printf()函式的呼叫格式為:printf("《格式化字串》",《參量表》)。

其中格式化字串包括兩部分內容:一部分是正常字元,這些字元將按原樣輸出;另一部分是格式化規定字元,以"%"開始,後跟一個或幾個規定字元,用來確定輸出內容格式。

參量表是需要輸出的一系列引數,其個數必須與格式化字串所說明的輸出引數個數一樣多,各引數之間用","分開,且順序一一對應,否則將會出現意想不到的錯誤。

比如:int a=1234;

printf("a=%d\n",a);

輸出結果為a=1234。

scanf()是c語言中的一個輸入函式。與printf函式一樣,都被宣告在標頭檔案stdio.h裡,因此在使用scanf函式時要加上#include。

int scanf(const char*restrict format,...);

函式scanf()是從標準輸入流stdin(標準輸入裝置,一般指向鍵盤)中讀內容的通用子程式,可以說明的格式讀入多個字元,並儲存在對應地址的變數中。

如:scanf("%d%d",&a,&b);

函式返回值為int型,如果a和b都被成功讀入,那麼scanf的返回值就是2。

2樓:雪豹出擊

斐波那契數列是個很經典的數列了,這個數列可以用兩種方法實現,遞迴實現和迴圈實現,下面分別用遞迴和迴圈實現一次吧,希望對你有幫助。

遞迴:long fibonacci( unsigned int n)

遞迴實現非常簡單,**也簡單明瞭,但是遞迴有個致命的弱點,裡面計算很多是重複的,當n很大的時候,計算量會變得非常大,效率非常低.

迴圈:long fibonacci( unsigned int n)

return fadd;

}此種方法是首先根據f0,f1計算出f2,然後由f1,f2,計算出f3,依次類推,時間複雜度o(n),效率就改善了很多。推薦此種方法。

希望對你有幫助!!!

3樓:匿名使用者

什麼是fibonacci數列。

fibonacci數列列出的前幾項:1,1,2,3,5,8,13,21,3前兩項之和等於第三項,這個也就是大家說的**分割。

遞推式:

f1 = 1               (n = 1)f2 = 1               (n = 2)fn = fn-1 + fn-2     (n ≥2)用c語言完成的求前n項之和:

#include

void main(){

long sum=0;

long a[100];

int i,n;

scanf("%d",&n);    //輸入na[0]=a[1]=1;

sum=2;

for(i=2;i

4樓:匿名使用者

#include

#include

#define n 200

long int f[n];

void fi(int n);

long int sum(int n);

void main()

fi(n);

sum=sum(n);

printf("fibonacc數列前%d項和為:%ld\n",n,sum);

system("pause");

}void fi(int n)

return sum;

}我在vc上執行過,正確。

如何用c語言做選單裡面放程式,如何用C語言做乙個選單,裡面放程式

1 首先新建原始檔c.c,用文字編輯器開啟。3 編寫好控制台批處理檔案,設定好環境變數,主要是path,include和lib三個環境變數!編輯好之後儲存為bat後者cmd字尾檔案。4 雙擊開啟剛才設定好的批處理檔案,在裡面輸入cl c,自動編譯鏈結,生成exe檔案。5 最後一步執行,在控制台輸入執...

C語言求此全排列遞迴演算法解析,C語言如何用遞迴演算法求1 2 3 n

used陣列是全域性變數有隱含初值0 關於全排列的演算法你可以理解為深搜加回溯。include define max 10 int used max 用來標記數字是否已經在前面使用過 int result max 存放結果int n void print 輸出結果void proc int step...

C語言陣列

1全部原因 你定義的a 2 2 是這樣排列的 a b c d 0 0 0 0 0 而a相當於a 0 s所以則要輸出第一行abc,因為沒有 0 結尾。所以繼續輸出d。而這是不規範的。如果你想以這樣的方式輸出字串,可以擴大範圍。a 2 2 換成a 4 4 舉例.char star 8 8 for i 0...