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...