剑指offerNo10. 矩形覆盖(Java)

题目描述:

我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?

思路:

可以发现最终得出的是一个斐波那契数列:

              | 1, (n=1)
f(n) =     | 2, (n=2)
              | f(n-1)+f(n-2) ,(n>2,n为整数)

package offer;

public class TestNo10 {
    public static void main(String[] args) {
        System.out.println(new TestNo10().RectCover(4));
    }
    public int RectCover(int target) {
        if(target<=0){
            return 0;
        }else if(target == 1){
            return 1;
        }else if(target == 2){
            return 2;
        }else{
            return RectCover(target-1)+RectCover(target-2);
        }
    }
}

代码:

发布了53 篇原创文章 · 获赞 11 · 访问量 3827

猜你喜欢

转载自blog.csdn.net/qq_40664693/article/details/104345240
今日推荐