演算法 斐波那契(1)

2021-07-24 04:10:52 字數 687 閱讀 8281

1.乙隻青蛙一次可以跳上一級台階,也可以跳上二級台階

為了跳上n級台階一共有幾種跳法

解析

1.n=1 1種

2.n=2 2種

3.n級台階可以由n-1或者n-2級台階跳上來f(n)=f(n-2)+f(n-1)

#include 

using

namespace

std;

int a[100]=;

int jump(int n)

return a[n];

}int main()

2.我們可以用2*1的小矩形無重疊乙個大的2*n的矩形,我們用n個這樣的小矩形有多少種覆蓋方法

解析

小矩形可以橫著放或者豎著放

1.橫著放 矩形變成了2*(n-2)大小的矩形的覆蓋方法

2.豎著放 矩形變成了2*(n-1)大小的矩形的覆蓋方法

斐波那契演算法

其思想與折半查詢 插值查詢沒有多大區別,本質上只是分割點的選擇不同。斐波那契查詢需要構造斐波那契數列,該數列的作用就是提供分割點 好多演算法書都沒有介紹清楚啊!參閱折半查詢 插值查詢以及斐波那契查詢 1 演算法首先找到構造乙個查詢表,即在原來的陣列上新增元素,使得該查詢表 陣列 的長度為某個斐波那契...

斐波那契查詢演算法

與二分查詢相比,斐波那契查詢演算法的明顯優點在於它只涉及加法和減法運算,而不用除法。因為除法比加減法要占去更多的機時,因此,斐波那契查詢的平均效能要比折半查詢好。include void fibonacci int f int fibonacci search int a,int key,int n...

斐波那契查詢演算法

斐波那契查詢的核心是 1 當key a mid 時,查詢成功 2 當keya mid 時,新的查詢範圍是第mid 1個到第high個,此時範圍個數為f k 2 1個,即陣列右邊的長度,所以要在 f k 2 1 範圍內查詢。如下 1 include2 include 3 include4 includ...