题目描述
我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
比如n=3时,2*3的矩形块有3种覆盖方法:
示例1
输入
4
返回值
5
在线链接
代码:
public class Solution {
public int RectCover(int target) {
if(target == 0){
return 0;
}
int cur = 1;
int next = 1;
while (target-- > 0){
next += cur;
cur = next - cur;
}
return cur;
}
}
思路概述:
在原有的图案加一块,可以竖着加,也可以横着加,如图
所以本题依旧是斐波那契数列的变种题
公式
F(0) = 0;
F(1) = 1;
F(2) = 2;
F(n) = F(n-1)+F(n-2)