當前位置:編程學習大全網 - 編程軟體 - C語言 輸出fibonacci數列前N項 N由終端輸入,N>=20,每行4個數。

C語言 輸出fibonacci數列前N項 N由終端輸入,N>=20,每行4個數。

fibonacci數列:f[0]=0,f[1]=1,f[i]=f[i-1]+f[i-2];

如果是求前19位那麽就用上面遞推過來就可以了(f[20]=6765,f[21]=10946就已經超四位了)

要求f[n]前面四位就要用到f(n)的數學公式:?f(n)=[((1+sqrt(5))/2)^n-((1-sqrt(5)/2)^n]/sqrt(5)

#include<stdio.h>

#include<math.h>

int?main()

{

int?n;

double?e=(1+sqrt(5))/2,tmp;

while(scanf("%d",&n)+1)

{

tmp=n*log10(e)-0.5*log10(5);

tmp=tmp-(int)tmp;

tmp=pow(10.0,tmp);

while(tmp<1000)?tmp*=10;

printf("%d\n",(int)tmp);

}

}

/*下面的樣例:(n>=20)

輸入:

20

21

22

23

24

25

35

36

37

38

39

40

89897865

99999999

999999999

輸出:

6765

1094

1771

2865

4636

7502

9227

1493

2415

3908

6324

1023

2091

2927

4914

*/

  • 上一篇:Qt+VC開發的界面默認是XP風格的,怎樣取消XP
  • 下一篇:我是瀘州職業技術學院的新生。我想學習計算機。請問各位同學,除了學圖像,還有哪些專業好就業?
  • copyright 2024編程學習大全網