剑指offer——第十题

我们可以用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);
        }
    }
}

猜你喜欢

转载自blog.csdn.net/dl674756321/article/details/90057000