Python——动态规划——爬楼梯问题
爬楼梯问题
问题引入
【问题描述】
假设小明住在二楼,每次回家都需要经过一个有n层台阶的楼梯。小明每次可以选择一步走一级台阶或者一步走两级台阶。请计算一下小明从楼下到家一共有多少种走法?
【输入形式】
整数n,表示一共有几层台阶
【输出形式】
一行,表示一共有多少种走法
【样例输入】
10
【样例输出】
89
程序设计
def Climb(n): #定义的爬楼梯函数
if n<1: #判断是否合法,台阶不合法,返回0
return 0
if n==1: #当只有一层台阶时,一种走法
return 1
if n==2: #当有两层台阶时,两种走法
return 2
a,b=1,2 #当台阶数大于3时,我们发现走法数呈斐波那契排列
sums=0 #即每一层台阶的走法数等于前两层台阶走法数的和
for i in range(2,n): #这是为什么呢,因为我们知道,每次只能走1步或者2步
sums=a+b #倒推一下,我们如何能到达第n级台阶呢,有两种方法
a=b #一种是在第9层台阶再走1步,另一种是