题目是我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。
请问用n个21的小矩形无重叠地覆盖一个2n的大矩形,总共有多少种方法?
比如n=3时,23的矩形块有3种覆盖方法
首先确定这是一个递归问题
当n=1时,只能竖着覆盖,f(1)=1;
当n=2时,既可以横着覆盖,也可以竖着覆盖,f(2)=2;
当n=N时,只需要考虑第一块如何覆盖即可
直接递归
public class Test{
public int RectCover(int target) {
if(target<=0){
return 0;
}
if (target == 1) {
return 1;
}
if (target == 2) {
return 2;
}else{
return RectCover(target-1)+RectCover(target-2);
}
}
}