C語言 | 求斐波那契數列的前30個數


例15:求Fibonacci數列的前40個數。這個數列有以下特點:第1,2兩個數為1,1,。從第三個數開始,該數是其前兩個數之和。(斐波那契不死神兔)
解題思路:從前兩個月的兔子數可以推出第3個月的兔子數。設第1個月的兔子數f1=1,第2個月的兔子數為f2=1,第3個月的兔子數f3=f1+f2=2。

源代碼演示:

#include<stdio.h>//頭文件 
int main()//主函數,程序的入口 
{
  int i,f1,f2,f3,row; //定義變量
    f1=1,f2=1; //變量初始化
    printf("輸入需要輸出的行數:");//提示語句 
    scanf("%d",&row); //鍵盤輸入行數
    printf("%d\n%d\n",f1,f2); //先輸出第一行和第二行
    for(i=1;i<row-1;i++) ///循環控制后row-2行
    {
      f3=f2+f1; //第3行的值是前面兩行之和
      printf("%d\n",f3);
      f1=f2; //變量賦值
      f2=f3;
    }
}

編譯運行結果如下:

輸入需要輸出的行數:30
1
1
2
3
5
8
13
21
34
55
89
144
233
377
610
987
1597
2584
4181
6765
10946
17711
28657
46368
75025
121393
196418
317811
514229
832040

--------------------------------
Process exited after 2.806 seconds with return value 29
請按任意鍵繼續. . .

讀者應該注意此程序只是簡單的輸出前30行,數字還是比較小的,如果想要更多的輸出,要用long int(長整型)定義,要不然回超出int的范圍,出現下面所示:

輸入需要輸出的行數:600
1
1
2
3
5
8
13
21
34
55
89
144
233
377
610
987
1597
2584
4181
6765
10946
17711
28657
46368
75025
121393
196418
317811
………………
-1831132203
1787838701
-43293502
1744545199
1701251697
-849170400

--------------------------------
Process exited after 2.706 seconds with return value 599
請按任意鍵繼續. . .

C語言學習路線   

C語言開發工具

C語言 | 求斐波那契數列的前30個數


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM