题目描述

我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?

思路:依旧是斐波那契数列,讨论区中有很多作图解释方便理解。注意n<1的情况。

AC代码:

def rectCover(self, number):
    # write code here
    if number == 0:
        return 0
    a = b = 1
    for _ in range(number):
        a, b = b, a + b
    return a