由公式得到遞迴,效率太低!
儲存中間值,由下往上計算!時間複雜度是o(n)。
public
class
test09
// 輸入1或者2的時候返回1
if (n == 1 || n == 2)
// 記錄前兩個(第n-2個)的fibonacci數的值
long prepre = 1;
// 記錄前兩個(第n-1個)的fibonacci數的值
long pre = 1;
// 記錄前兩個(第n個)的fibonacci數的值
long current = 2;
// 求解第n個的fibonacci數的值
for (int i = 3; i <= n ; i++)
// 返回所求的結果
return current;
}public
static
void
main(string args)
}
public
class solution
public
intjumpfloor(int target, int p, int q)
if (target == 2)
return jumpfloor(target - 1, q, p + q);}}
public
class solution
if (target == 1)
int total = 1;
while (target != 1)
return total;}}
抽象問題:畫圖,舉例子!!!發現規律或者隱含的邏輯條件!
public
class solution
private
intrectcover(int target, int p, int q)
if (target == 1)
if (target == 2)
return rectcover(target - 1, q, p + q);}}
面試題9 斐波那契數列
方法一 很容易想到的解法是直接使用遞迴。c include stdafx.h include using namespace std long long fibonacci unsigned int n if n 1 return fibonacci n 1 fibonacci n 2 int tm...
面試題9 斐波那契數列
題目一 寫乙個函式,輸入n,求斐波那契數列的第n項,斐波那契數列的定義如下 0 n 0 f n 1 n 1 f n 1 f n 2 n 1 遞迴 long long fibonacci unsigned int n if n 0 n 1 return n return fibonacci n 1 f...
面試題9 斐波那契數列
面試題9 題目 寫乙個函式,輸入n,求斐波那契數列的第n項。很多教科書中的解法 long long fibonacci solution1 unsigned int n 這是從第n項向前計算的方法,很多計算量實際上是重複的。long long fibonacci solution2 unsigned...