1. 程式人生 > >矩形覆蓋 java

矩形覆蓋 java

矩形覆蓋 java

題目描述

  • 我們可以用2 * 1的小矩形橫著或者豎著去覆蓋更大的矩形。請問用n個2 * 1的小矩形無重疊地覆蓋一個2 * n的大矩形,總共有多少種方法?

程式碼1:

public class Solution {
    public int RectCover(int target) {
        int n = 0;
        if(target == 1){
            n = 1;
        }
        if(target == 2){
            n = 2;
        }
        if(target > 2){
            n = RectCover(target - 1) + RectCover(target - 2);
        }
        return n;
    }
}

程式碼2:推薦使用

public class Solution {
    public int RectCover(int target) {
        int n = 0;
        int a = 1, b = 2;
        if(target == 1){
            n = a;
        }
        if(target == 2){
            n = b;
        }
        if(target > 2){
            for(int i = 3; i <= target; i++){
                n = a + b;
                a = b;
                b = n;
            }
        }
        return n;
    }
}