import java.util.*;
public class Solution {
    public int rectCover(int target) {
        int n1 = 1;
        int n2 = 2;
        int nn = 0;
        for (int i = 3; i <= target; i++) {
            nn = n1 + n2;
            n1 = n2;
            n2 = nn;
        }

        if (target <= 2)return target;

        else return nn;
    }

}



当 n 为 1 时,只有一种覆盖方法:

当 n 为 2 时,有两种覆盖方法:

要覆盖 2*n 的大矩形,可以先覆盖 2*1 的矩形,再覆盖 2*(n-1) 的矩形;或者先覆盖 2*2 的矩形,再覆盖 2*(n-2) 的矩形。而覆盖 2*(n-1) 和 2*(n-2) 的矩形可以看成子问题。该问题的递推公式如下: