编程笔试(解析及代码实现):斐波拉契数序列应用之矩形覆盖
目录
编程题目
斐波拉契数序列应用:矩形覆盖。我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
实现代码
# -*- coding:utf-8 -*-
'''
首先假设规律为:n块矩形有f(n)种覆盖方法
'''
class Solution:
def rectCover(self, number):
# write code here
fa,fb=1,2
if number==0:
return 0
elif number==1:
return 1
elif number==2:
return 2
else:
for i in range(3,number+1):
f_next=fa+fb #切记,先看清给谁赋值!!!
fa=fb
fb=f_next
return f_next