题目描述: 有一楼梯共n级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第n级,共有多少种走法? 现在给你一个正整数n(0 < n < 10001)
示例:
输入:n = 2
输出:1
分析:
当前为第 n 个台阶时,只可能是第 n-1 个台阶或者是 第 n-2个台阶走上来的。
定义 fac_lst[n]
是走到第 n 级时的走法,难么 fac_lst[n] = fac_lst[n-1] + fac_lst[n-2]
。
那么也就是和上一题的 斐波拉契数列一样了。 看代码。
代码:
1
2
3
4
5
fac_lst = [1, 1]
for i in range(2, 10001):
fac_lst.append(fac_lst[-1] + fac_lst[-2])
print(fac_lst[n-1])