题目内容
我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
题目思路
这道题目要把0页考虑进去。与此同时,1返回1,2返回2。从3往上起是之前两个结果的叠加。类似于斐波那契数列。
程序代码
# -*- coding:utf-8 -*-
class Solution:
def rectCover(self, number):
# write code here
n=number
consult={0:0,1:1,2:2}
if n in consult:
return consult[n]
else:
for i in range(3,n+1):
consult[i]=consult[i-1]+consult[i-2]
return consult[n]