有递归和非递归两种写法
每次你可以爬1个或两个台阶 问你有多少种方法爬到楼顶
其实这个问题和斐波那契数列差不多
1.递归
def climb-floor(n):
if n==1:
return 1
elif n==2:
return 2
else :
return climb-floor(n-1)+climb-floor(n-2)
这是递归写法
非递归写法 更简单一些
注意一点 这里的a,b=b,a+b的顺序 并没有先后
比如说 第一次循环时,a=b=1,b=a+b=1+1=2
第二次循环时,a=b等于2,此时 b=a+b 这里的a还是第一次循环的a,还是1 并不是2 所以这里的b就等于1+2=3了