咱们能够用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?java
这个题目有点相似于亲蛙跳的那个题目。spa
一样是求取有多少种方法的,一样采起分割的思想,将总体无线化为小,化到能肯定,只有 几种方法,不然继续化小。code
根据题目 彻底能够化成青蛙跳台阶的题目, 2*1的大矩形,只有1种覆盖方法, 2*2 的有2种覆盖方法。get
无非就是 1阶台阶是 1种跳法, 2阶台阶是 2种跳法。。class
具体能够看青蛙跳怎么想的。直接写代码了:方法
public static 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); }
换汤不换药。。。解法同样。。static