题目

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

思路

规律遵循斐波那契数列规律

代码

 1public class Solution {
 2    public int JumpFloor(int target) {
 3        if(target == 1)
 4            return 1;
 5        if(target == 2)
 6            return 2;
 7        int a = 1;
 8        int b = 2;
 9        int sum = a + b;
10        for(int i=3;i<=target;i++)
11        {
12            sum = a + b;
13            a = b;
14            b = sum;
15        }
16        return sum;
17    }
18}