问题描述
我们可以用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;
}
};
本文探讨了使用2*1的小矩形无重叠覆盖2*n大矩形的方法总数问题,通过分析得出该问题与斐波那契数列紧密相关。文章提供了一段C++代码实现,通过迭代计算出覆盖方法的总数。

2705

被折叠的 条评论
为什么被折叠?



