遞迴優化 斐波那契

2021-08-21 18:37:52 字數 830 閱讀 4485

f(n) = f(n-1)+f(n-2)

1,2,3,5,8.....

自頂向下使用的遞迴層次比較多,在n取值較大的情況下,效率很低(時間維度)

所以可以使用陣列來替換多重遞迴呼叫,即以空間來置換時間(intersting)

#include #include #include #include #include #include #define error  -22

#define debug 0

static long int feibonaqie_toptolow(int n)

if(n==1)

if(n==2)

long int ret = 0;

ret = feibonaqie_toptolow(n-1)+feibonaqie_toptolow(n-2);

return ret;

}static long int feibonaqie_lowtotop(int n)

int i =0;

long int arr[n];

arr[1] = 1;

arr[2] = 2;

for(i=3; i<=n; i++)

//printf("arr[%d] is %ld\n", i-1, arr[i-1]);

return arr[i-1];

}int main()

看乙個執行效果:

$ ./a.exe

165580141

time_use is 677.24ms

165580141

time_use is 0.00ms

遞迴 斐波那契

題 若一頭小母牛,從出生起第四個年頭開始每年生一頭母牛,按此規律,第n年有多少頭母牛?具體分析 1 分析題目 從出生起第四個年頭開始每年生一頭母牛 時間 年 未成熟母牛 頭 成熟母牛 頭 母牛總數 頭 1 1 0 1 2 1 0 1 3 1 0 1 4 0 1 1 5 1 1 2 6 2 1 3 7...

斐波那契遞迴

const fib1 n if n 0 else if n 1 else console.log fib1 5 函式呼叫順序 fib1 5 fib1 4 fib1 3 fib1 2 fib1 1 fib1 0 fib1 1 fib1 2 fib1 1 fib1 0 fib1 3 fib1 2 fib...

斐波那契數列 遞迴和遞迴優化

斐波那契數列 經典數學問題之一 斐波那契數列,又稱 分割數列,指的是這樣乙個數列 1 1 2 3 5 8 13 21 想必看到這個數列大家很容易的就推算出來後面好幾項的值,那麼到底有什麼規律,簡單說,就是前兩項的和是第三項的值,也許你會想到的是迭代,也學你想到的是遞迴。簡單分析一下遞迴 int fi...