我们可以用2 * 1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2 * 1的小矩形无重叠地覆盖一个2 * n的大矩形,总共有多少种方法?
算法思路:矩阵覆盖的问题满足斐波那契数列,可使用递归的方式求斐波那契数列,如图所示(红线代表的是2*1的小矩阵):
class sulo
{
public:
static int cover(int n)
{
if(n < 3)
return n;
return cover(n-1)+cover(n-2);
}
};
我们可以用2 * 1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2 * 1的小矩形无重叠地覆盖一个2 * n的大矩形,总共有多少种方法?
算法思路:矩阵覆盖的问题满足斐波那契数列,可使用递归的方式求斐波那契数列,如图所示(红线代表的是2*1的小矩阵):
class sulo
{
public:
static int cover(int n)
{
if(n < 3)
return n;
return cover(n-1)+cover(n-2);
}
};