题目描述
楼梯有N阶,上楼可以一步上一阶,也可以一步上二阶。
编一个程序,计算共有多少种不同的走法。
输入格式
一个数字,楼梯数。
输出格式
走的方式几种。
输入输出样例
输入 #1
4
输出 #1
5
说明/提示
60% N<=50
100% N<=5000)
废话不说,先上代码。(亲测无毒,放心食用)
a = []
for i in range(10000):
a.append(0)
a[1]=1
a[2]=2
n = int(input())
for i in range(3,n+1):
a[i]=a[i-1]+a[i-2]
print(a[n])
根据题目说,爬楼梯可以一次爬一个,也可以一次爬两个,所以每当你踌躇满志的爬到一个新台阶的时候,你就会想是一次爬一个台阶呢,还是两个呢。
所以可以总结出递归公式为
a[i] = a[i-1] + a[i-2] // i为第i层楼梯
由数据范围知需用高精,但Python不限位数就没有这方面的问题啦