题目描述
我们可以用2 * 1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2 * 1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
比如n=3时,2*3的矩形块有3种覆盖方法:
题目分析
1. 当n = 1 时,有1种 2. 当n = 2 时,有2种 3. 当n = 3 时,有3种 4. 所以,递推的关系为: f(n) = f(n-1)+ f(n-2)
题目代码
class Solution { public: int rectCover(int number) { int a[100]; a[1] = 1; a[2] = 2; for(int i = 3; i <= number; i++) { a[i] = a[i-1] + a[i-2]; } return a[number]; } };