c語言陣列,利用陣列如何寫裴波納契數列的前n項的值?

時間 2021-06-06 02:22:52

1樓:Joker

// gcc fib.c -o fib -Ofast// time ./fib

#define P (1000000000+7)#define N (100000)

#include

intfib

(intn,

int*

arr)if(

arr[n]

==-1

)return

arr[n];

}int

arr[N+

10];

intmain

()for

(inti=

N-1;

i>=N-

10;i--

)return0;

}遞迴並不是最土的做法,遞迴可以記憶化。如果嫌棄記憶化搜尋空間大,還能用Cache機制,允許Evict Record。

特別鳴謝:感謝 @窗戶 提供的最土遞迴的框架,我改成了記憶化版本。

編譯的時候注意棧空間大小

2樓:窗戶

以下不考慮int只可以裝32個bits,還有乙個bit為符號位,純屬演示。

實現一,最土的遞迴,效率非常低下。

#include

intfib

(intn)

returnf(

n-1)

+f(n

-2);}

intmain

()return0;

}實現二,迭代。

#include

void

fib_it

(int*a

,int

len)}a

[0]=

a[1]

=1;for(i

=0;i

)}intmain

()return0;

}此外,計算fib數列的某一項存在乙個對數級演算法,這是題外話。

詳細演算法分析:

斐波那契數列的演算法分析

C語言如何實現陣列的自增長?

王飛 template void Array reallocate unsigned int new size T old data data data new T new size allocated new size int end used new size used new size for...

C語言裡如何按需生成函式指標陣列?

暮無井見鈴 C 怎麼生成 4096 個函式?參考這裡的巨集,編譯時生成這些函式是可行的。C 的話用 index sequence 模板就行。 VeroFess 手機回答 我是這麼做的 shellcode 彙編引擎 mmap VirtulAlloc 是不太安全 我乙個寫殼的管他安不安全 gcc下 in...

c語言如何不用陣列把數字倒過來?

NoneType unsigned long long reverse unsigned long long Val return Res 雪地裡的枯樹 使用指標,如int a 2 int p a for int i 1 i 0 i 這樣就可以實現對數字的反向輸出。 輸入a,輸出a的各位數字反轉的結...