题目描述:
我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2n的大矩形,总共有多少种方法?
比如n=3时,23的矩形块有3种覆盖方法:
题解:
class Solution {
public:
int rectCover(int number)
{
if(number == 0 || number == 1 ||number == 2)
return number;
int f = 1;
int g = 2;
for(int i=3;i<=number;++i)
{
g = g+f;
f = g-f;
}
return g;
}
};
解题思路:
转移公式:
f(n) = f(n-1) + f(n-2);