有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);
      }