面試題9 斐波拉契數列及其變種

2021-08-02 18:47:50 字數 1216 閱讀 4342

由公式得到遞迴,效率太低!

儲存中間值,由下往上計算!時間複雜度是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...