面试日记---有n个台阶,如果一次只能上一个或者两个台阶,总共有
2019-03-07 本文已影响0人
SavingUnhappy
今天这周的第三次面试,面试官刚开始问了一些基础的理论知识,针对简历上的项目询问了一些细节,还是比较紧张,而且有的东西忘记了挺多,会慢慢整理,记录在简书中。
题目是面试官口述的
有n个台阶,如果一次只能上一个或者两个台阶,总共有多少种上法?
刚开始直接从n想起,没一点思路。之后从1开始分析,发现了其中的规律。
定义函数F(n)
n 为台阶数n = 1: F(1) = 1
n = 2: F(2) = 2
n = 3: F(3) = 3
n = 4: F(4) = 5
n = 5: F(5) = 8
可以看出规律F(n) = F(n-1) + F(n-2)
使用python代码实现:
def method_count(n):
"""使用递归实现的"""
if n == 1:
return 1
elif n == 2:
return 2
else:
return method_count(n-1) + method_count(n-2)
if __name__== '__main__':
n= 36
print(method_count(n)) # 24157817