我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法
思路:通过找规律可知每一项的结果是一个斐波那契数列,用for循环求解,也可以使用递归调用函数。
class Solution {
public:
int rectCover(int number) {
if(number <= 0)
return 0;
else if(number == 1)
return 1;
else if(number == 2)
return 2;
int i = 1,j = 2,sum = 0,k;
for(k = 3;k <= number;k++)
{
sum = i + j;
i = j;
j = sum;
}
return sum;
}
};