题目描述:
我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
题目解读:
此题其实仍然是个斐波拉契数列问题,借助于这位博主图片一用,解释如下:
代码:
class Solution
{
public:
int rectCover(int number)
{
if(number==0)
return 0;
else if(number==1)
return 1;
else if(number==2)
return 2;
else
{
//方式1
//int a = 1;
//int b = 2;
//int temp;
//while(number>2)
//{
//temp = a;
//a = b;
//b = temp+b;
//number--;
//}
//return b;
//方式2
int pre=2;
int prepre=1;
int sum=0;
for(int i=3;i<=n;i++)
{
sum=pre+prepre;
prepre=pre;
pre=sum;
}
return sum;
}
}
};