例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請按任意鍵繼續. . .
最新評論