一、题目描述
我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
输入:一个整数n
输出:覆盖方法种数
二、思路分析
思路和斐波那契数列类似。但f(1) = 1, f(2) = 2。
三、实现代码
public class Solution {
public int RectCover(int n) {
if(n <= 0){
return 0;
}
if(n == 1){
return 1;
}
int oneTemp = 1;
int twoTemp = 1;
for (int i = 2; i <= n; i++) {
int temp = oneTemp + twoTemp;
oneTemp = twoTemp;
twoTemp = temp;
}
return twoTemp;
}
}