遞迴演算法之台階問題

2021-08-20 14:34:02 字數 590 閱讀 3881

問題:某人要上一節樓梯,該樓梯有n階台階,現在知道此人邁步最大可以達到3階台階,最小1階台階,現在問題是此人上樓梯的方法有多少種!

演算法思想:

此人有三種步伐為1、2、3。現在要上n階台階,可以將大問題化解。用f(n)代表要完成n個台階的所有方法,假設此人在前進一步就將完成所有任務。

則只可能有三種情況:

一:此人站在n-1的台階上,所以只需要走一步,邁一台階就能完成。

二:此人站在n-2的台階上,所以只需要走一步,邁二台階就能完成。

三:此人站在n-3的台階上,所以只需要走一步,邁三台階就能完成。

那麼由此可知    f(n)=f(n-1)+f(n-2)+f(n-3)             (n>3)

而f(1)=1   一階台階只有一種走法,只有: 1

f(2)=2    二階台階有二種走法,為:1 1   與  2 

f(3)=4   三階台階有四種走法,為:1 1 1  與  1 2  與 2 1 與 3

有f(n)=f(n-1)+f(n-2)+f(n-3)    可知f(4)=f(1)+f(2)+f(3)=7

c**實現:

int taijie(int a)

遞迴之台階問題

乙隻青蛙一次可以跳上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...

跳台階問題 遞迴演算法

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

演算法 台階問題 遞迴解決

0 注意 0級台階有0種方法,如果n 1,f 0 1 1 這裡的f n 代表的是n個台階有一次1,2,n階的 跳法數。2 n 1時,只有1種跳法,f 1 1 3 n 2時,會有兩個跳得方式,一次1階或者2階,這回歸到了問題 1 f 2 f 2 1 f 2 2 4 n 3時,會有三種跳得方式,1階 2...