劍指OFFER之二維數組中的查找(九度OJ1384)

題目描述:

你們都知道斐波那契數列,如今要求輸入一個整數n,請你輸出斐波那契數列的第n項。斐波那契數列的定義以下:數組

 

輸入:

輸入可能包含多個測試樣例,對於每一個測試案例,測試

輸入包括一個整數n(1<=n<=70)。spa

 

輸出:

對應每一個測試案例,code

輸出第n項斐波那契數列的值。blog

 

樣例輸入:
3

樣例輸出:

2

解題思路:

  題目中能夠看到,n的範圍是70,最早想到的遞歸確定是不行的,那麼咱們鑽一個空子,事先生成一個數組,到時候取出來就能夠了。過高端的想法,也想不出,記得有一個用矩陣求解的方法,很快。這道題只要不超時就能夠了。
  另外要注意的地方,就是70的時候遞歸的數據時很大的,記得類型要用最大的long long 輸出%lld才能夠

代碼:

#include <stdio.h>
long long num[71] = {0,1}; void createfi(long long *num); int main(void){ int n; createfi(num); while(scanf("%d",&n)!=EOF && n>=1 && n<=70){ printf("%lld\n",num[n]); } return 0; } void createfi(long long *num){ int i; for(i=2;i<71;i++){ num[i] = num[i-1]+num[i-2]; } } /************************************************************** Problem: 1387 User: xhalo Language: C Result: Accepted Time:0 ms Memory:916 kb ****************************************************************/
相關文章
相關標籤/搜索