简单的递归

  • 当n=1时,只能竖着覆盖,f(1)=1;

  • 当n=2时,既可以横着覆盖,也可以竖着覆盖,f(2)=2;

  • 当n=N时,只需要考虑第一块如何覆盖即可,详见下图:
    图片说明

  • 代码如下:

      public int rectCover(int target) {
    
          if (target <= 0) {
              return 0;
          }
          if (target == 1) {
              return 1;
          }
          if (target == 2) {
              return 2;
          }
          return rectCover(target - 1) + rectCover(target - 2);
      }