描述
我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,从同一个方向看总共有多少种不同的方法?
比如n=3时,2*3的矩形块有3种不同的覆盖方法(从同一个方向看):
输入描述:
2*1的小矩形的总个数n
返回值描述:
覆盖一个2*n的大矩形总共有多少种不同的方法(从同一个方向看)
示例1
输入:
0
复制返回值:
0
复制
示例2
输入:
1
复制返回值:
1
复制
示例3
输入:
4
复制返回值:
5
public class Jz10_rectCover {
@Test
public void test(){
System.out.println(rectCover(3));
}
public int rectCover(int target) {
if(0 == target){
return 0;
}
int[] arr = new int[target + 1];
arr[0] = 1;
arr[1] = 1;
for (int i = 2; i <= target; i++) {
arr[i] = arr[i - 1] + arr[i - 2];
}
return arr[target];
}
}