斐波那契額數列及青蛙跳台階問題

2021-09-06 12:34:21 字數 1098 閱讀 3335

題目:寫乙個函式,輸入n,求斐波那契(fibonacci)數列的第n項。
斐波那契(fibonacci)數列定義如下:

效率很低的解法:

long long fibonacci_solution1(unsigned int n)

改進的演算法:從下往上計算。首先根據f(0)和f(1)算出f(2),再根據f(1)和f(2)算出f(3)。。。。。依此類推就可以算出第n項了。很容易理解,這種思路的時間複雜度是o(n)。實現**如下:

long long fibonacci(unsigned n)

; if(n < 2)

return result[n];

long long fibminusone = 1;

long long fibminustwo = 0;

for(unsigned int i = 2 ; i <= n ; ++i)

return fibn;

}

題目:乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法。
可以把n級台階時的跳法看成是n的函式,記為f(n)。當n>2時,第一次跳的時候就有兩種不同的選擇:一是第一次只跳1級,此時跳法數目等於後面剩下的n-1級台階的跳法數目,即為f(n-1);另一種選擇是第一次跳2級,此時跳法數目等於後面剩下n-2級台階的跳法數目,即為f(n-2)。因此,n級台階的不同跳法的總數f(n)=f(n-1)+f(n-2)。分析到這裡,不難看出這實際上就是斐波那契數列了。

#includeusing namespace std;

long fibonacci_solution1(unsigned int n)

int main()

{ int n;

cin>>n;

cout用數學歸納法可以證明f(n)=2n-1.

斐波那契數列及青蛙跳台階問題

都是 寫乙個函式,輸入n,求斐波那契 fibonacci 數列的第n項。斐波那契 fibonacci 數列定義如下 f n 0,1,f n 1 f n 2 n 0n 1 n 2 效率很低的解法 遞迴解法 效率很低 long long fibonacci solution1 unsigned int ...

斐波那契數列及青蛙跳台階問題

題目1 寫乙個函式,輸入n,求斐波那契 fibonacci 數列的第n項。斐波那契 fibonacci 數列定義如下 f n 0,1,f n 1 f n 2 n 0 n 1 n 2 效率很低的解法 遞迴解法 效率很低 objc view plain copy long long fibonacci ...

斐波那契數列及青蛙跳台階問題

題目1 寫乙個函式,輸入n,求斐波那契 fibonacci 數列的第n項。1斐波那契 fibonacci 數列定義如下 效率很低的解法 遞迴解法 效率很低 function fibonacci solution1 n 2 迴圈解法 改進的演算法 從下往上計算。首先根據f 0 和f 1 算出f 2 再...