题目描述:输入一个n,代表有n块 2*1的小矩形,用它们去填一个2*n的大矩阵,总共有多少种填的方法
思路:递归,其实本题就是一个斐波那契数列,小矩形有可以横着摆2*1或者竖着摆1*2,这两种摆法是两种不同的填的方法,而竖着摆的时候必须消耗2块小矩形,组成一个2*2的矩形,所以问题就可以这么想。如果第一次是横着摆,那么剩下的就有f(n-1)种摆法,如果第一次是竖着摆,则需要2个小矩形,那么剩下的就由f(n-2)种摆法,总共两种可能的摆法,所以总的摆法就是f(n-1)+f(n-2)
java程序:
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);
}
}