题目描述
我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
解题思路:
代码1:
public class Solution {
public int RectCover(int target) {
if(target<=0){
return 0;
}
if(target==1){
return 1;
}
if(target==2){
return 2;
}
return RectCover(target-1)+RectCover(target-2);
}
}
代码2:(i<=targe)
public class Solution {
public int RectCover(int target) {
if(target<=0){
return 0;
}
if(target==1){
return 1;
}
if(target==2){
return 2;
}
int sum=0;
int add1=2;
int add2=1;
for(int i=3;**i<=targe**t;i++){
sum=add1+add2;//add1表示的是前一项,add2表示的是后一项,计算到f(n)
add2=add1;
add1=sum;
}
return sum;
}
}