楼梯有N阶,上楼可以一步上一阶,也可以一步上二阶。
编一个程序,计算共有多少种不同的走法。
一个数字,楼梯数。
走的方式几种。
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不限位数就没有这方面的问题啦
原文:https://www.cnblogs.com/yeah123/p/12005863.html