Python 关于爬楼梯问题

有递归和非递归两种写法

每次你可以爬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)

这是递归写法

非递归写法 更简单一些

21c150e0e2ba444592d5b73ff1d899ae.jpg

注意一点 这里的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了 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值