题目描述
我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
解题思路
类似跳台阶的题目,同样是根据数学归纳法来做。这也启示我,当遇到当n=?时的题目时,一般采用数学归纳法来做,找出归纳公式。此题为斐波那契数列。1
2
3
4
5
6
7
8
9
10
11
12
13class Solution {
public:
int rectCover(int number) {
int first = 1, second = 2;
int result = number;
for(int i=3; i<=number; i++){
result = first + second;
first = second;
second = result;
}
return result;
}
};