题目描述:
有一楼梯共n级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第n级,共有多少种走法? 现在给你一个正整数n
示例:
输入:
n = 2
输出:
1
思路一:深度优先遍历。
way = []
def DFS(x, cnt):
global c
global n
if x == n:
way.append(cnt)
if x < n:
DFS(x + 1, cnt + 1)
DFS(x + 2, cnt + 1)
DFS(1, 0)
print(len(way))
思路二:观察可知第n个台阶,只能是从第n-1个台阶或者是第n-2个台阶走上来的。故可以转换为斐波那契数列问题。
L = [1, 1]
for i in range(2, 1000):
L.append(L[-1] + L[-2])
print(L[n - 1])