我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
思路:只有两种情况:
①一个2×1矩形(横着)和一个2×(n-1)矩形
②两个2×1矩形(竖着)和一个2×(n-2)矩形
public class o_10 {
public int RectCover(int target) {
if (target < 1) {
return 0;
} else if (target == 1 || target == 2) {
return target;
} else {
return RectCover(target - 1) + RectCover(target - 2);
}
}
}