题目描述
我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
题目类别
斐波那契数列
解题思路
考虑不合法输入;int考虑正,负,零三种情况;
fn=f(n-1)+f(n-2)
具体实现
class Solution {
public:
int rectCover(int number) {
if(number <= 0) return 0;
int fn1 = 2;
int fn2 = 1;
if( number == 1) return 1;
if( number == 2) return 2;
while( number-- > 2){
fn1 += fn2;
fn2 = fn1 - fn2;
}
return fn1;
}
};