题目
我们可以用2 * 1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2 * 1的小矩形无重叠地覆盖一个2 * n的大矩形,总共有多少种方法?
比如n=3时,2 * 3的矩形块有3种覆盖方法:
思路
本题依旧是抽象的斐波拉契数列。详细思路,可以跳转:JZ8—跳台阶
AC代码
public class Solution {
public static int RectCover(int target) {
if(target == 0)
return 0;
if(target == 1)
return 1;
if(target == 2)
return 2;
int x = 1;
int y = 2;
for(int i = 3 ; i <= target ; i = i + 2 ) {
x = x + y;
y = x + y;
}
if(target % 2 == 0) {
return y;
}else {
return x;
}
}
}