首頁>技術>

例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;    }}

編譯執行結果如下:

輸入需要輸出的行數:30112358132134558914423337761098715972584418167651094617711286574636875025121393196418317811514229832040--------------------------------Process exited after 2.806 seconds with return value 29請按任意鍵繼續. . .

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

輸入需要輸出的行數:600112358132134558914423337761098715972584418167651094617711286574636875025121393196418317811………………-18311322031787838701-4329350217445451991701251697-849170400--------------------------------Process exited after 2.706 seconds with return value 599請按任意鍵繼續. . .

11
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • Vue 的單元測試入門