有n阶台阶,一次走一步或两步,有多少种走法?
递归实现:
-
假设有f(n)种走法
-
当走到n-1阶台阶时,有f(n-1)种走法,再走一步走完
-
当走到n-2阶台阶时,有f(n-2)种走法, 再走1+1或2,走完
-
其中走1+1和走到n-1阶时的f(n-1)重复
-
所以f(n)=f(n-1))+f(n-2)
代码实现:public int Step(int n) { if(n<=2) { return n; } return Step(n-1)+Step(n-2); }