輸出[m,n]范圍內的所有斐波那契(Fibonacci)數,m,n這兩個數由鍵盤輸入。
【提示】
1,1,2,3,5,8,13,21,34,……這是斐波那契(Fibonacci)數列的前幾項。斐波那契數列的特點:前兩項均為1,後面任意一項都是其前面兩項之和。
本實驗雖然只要求輸出在[m,n]范圍內的斐波那契數,但是依然需要從第1個Fibonacci數開始依次得到下一個,並判斷是否是需要輸出的那個。
首先先開一個數組,把斐波那契數列存到數組裡,然後再讀入兩個數字m和n,尋找數組中滿足條件數字,輸出來
#include<stdio.h>
int main()
{
int f[100];
int m, n, i;
f[0] = 1; f[1] = 1;
for (i = 2; i < 100; i++)f[i] = f[i - 1] + f[i - 2];
scanf("%d%d", &m, &n);
for (i = 0; f[i] < m; i++);
for (; f[i]<n; i++) printf("%d ",f[i]);
return 0;
}
程序有些小毛病沒有太細致的修改。比如斐波那契數列後續的數目越來越大,int很有可能存不下,如果m和n比較大的話會出錯。如果出現這種情況,建議你用long或者更大的數來存。再有,我默認了m比較小而n比較大。如果程序有其他要求或條件的話,需要進行相應的修改