题目描述
我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
c++实现
class Solution {
public:
int rectCover(int number) {
if(number<=0)
return 0;
if(number==1)
return 1;
int one=0;
int two=1;
int three = 0;
for(int i=1;i<=number;i++)
{
three=two+one;
one=two;
two=three;
}
return three;
}
};
Java实现
public class Solution {
public int RectCover(int target) {
if(target<=0)
return 0;
if(target==1)
return 1;
int one=0;
int two=1;
int three = 0;
for(int i=1;i<=target;i++)
{
three=two+one;
one=two;
two=three;
}
return three;
}
}
python实现
# -*- coding:utf-8 -*-
class Solution:
def rectCover(self, number):
if number<=0:
return 0
if number==1:
return 1
one,two,three=0,1,0
for i in range(1,number+1):
three=two+one
one=two
two=three
return three
# write code here