问题描述
我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
结果
运行时间:5ms
占用内存:376k
知识点
推导通项
代码
class Solution {
public:
int rectCover(int n) {
/*鬼知道我审错题了,2*n的矩形 理解为了长2*n 宽2
n:0 1 2 3 4 5
0 1 2 3 5 8
*/
int a = 1,b = 2,sum = 2;
if(n==1)
{
return 1;
}else if(n == 2)
{
return 2;
}else if( n> 2)
{
while(n>2)
{
sum= a +b;//f(n)
a = b;//f(n-1)
b = sum;//f(n-2)
n--;
}
return sum ;
}
return sum=0;
}
};