题目描述
我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
考虑递归求解:
如果第一个矩形竖着放,则剩下2×(n-1)的矩形区域需要覆盖;如果第一个矩形横着放,则剩下2×(n-2)的矩形区域需要覆盖。
public int RectCover(int target) { if(target == 0 || target == 1 || target == 2) { return target; }else { return RectCover(target - 1) + RectCover(target -2); } }