遞迴之台階問題

2021-09-23 19:40:00 字數 665 閱讀 2047

乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法。

當n=1時,次數f(n)=1。

當n=2時,次數f(n)=2。(11或2)

當n>2時,當前一步可以跳一級,也可以跳兩級,次數f(n)=f(n-1)+f(n-2)。

public:

int jumpfloor(int number) };

乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法。

乙隻青蛙一次可以跳上1級台階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上乙個n級的台階總共有多少種跳法。

當台階數為n時,可以分為以下步驟來完成:

設第一次跳的台階數為s,跳台階方式數為t,則:

(1)s=1時,t(n) = t(n-1)

(2)s=2時,t(n) = t(n-2)

. .

. (n)s=n時,t(n) = t(0) = 1

所以總的跳台階方式數t可以表示為:

t(n) = t(0) + t(1) + t(2) + … + t(n-1)

由於t(0) = t(1) = 1,所以t(n) = 2^(n-1)

class solution 

};

遞迴演算法之台階問題

問題 某人要上一節樓梯,該樓梯有n階台階,現在知道此人邁步最大可以達到3階台階,最小1階台階,現在問題是此人上樓梯的方法有多少種!演算法思想 此人有三種步伐為1 2 3。現在要上n階台階,可以將大問題化解。用f n 代表要完成n個台階的所有方法,假設此人在前進一步就將完成所有任務。則只可能有三種情況...

遞迴之跳台階問題

分析 這道題最近經常出現,包括microstrategy等比較重視演算法的公司都曾先後選用過個這道題作為面試題或者筆試題。首先我們考慮最簡單的情況。如果只有1級台階,那顯然只有一種跳法。如果有2級台階,那就有兩種跳的方法了 一種是分兩次跳,每次跳1級 另外一種就是一次跳2級。現在我們再來討論一般情況...

跳台階問題 遞迴演算法

首先我們說說什麼是遞迴。程式呼叫自身的程式設計技巧稱為遞迴 recursion 遞迴做為一種演算法在 程式語言 中廣泛應用。乙個過程或 函式在其定義或說明中有直接或間接呼叫自身的一種方法,它通常把乙個大型複雜的問題層層轉化為乙個與原問題相似的規模較小的問題來求解,遞迴策略只需少量的程式就可描述出解題...