【算法百题之二】n级楼梯有几种跳法(每次最多两步)

          【算法百题之二】n级楼梯有几种跳法(每次最多两步)

 

       大家好,我是Lampard~~

       很高兴又能和大家见面了,接下来准备系列更新的是算法题,一日一练,早日升仙!

 

       今天的问题是:

       有个家伙叫Lampard,他很喜欢跳楼梯。Lampard每次只能跳一或两步。

       那么问题来了,现在有一个n级的楼梯,他一共能够有多少种跳法呢???

       

       下面是我解题的思路:

     

 

我首先把前三次跳楼的次数结果写出来:

         (1)如果楼梯只有一级,毫无疑问只有一种可能 (0到1)

         (2)如果楼梯有两级,我们可以有两种选择,一种是(0到1到2),另一种是直接(0到2)

         (3)如果楼梯有三级,那么我们第一步跳一级的话,则剩下的可能是f(2) (0到1到2到3)或者(0到1到3)

                                               第一步跳两级的话,剩下的可能是f(1),也就只有一种可能(0到2到3)

                                               所以f(3)=f(1)+f(2)

          (4)如果楼梯有四级,那么我们第一步跳一级的话,则剩下的可能是f(3) 

                                               第一步跳两级的话,剩下的可能是f(2)

                                               所以f(4)=f(2)+f(3)

              同理,f(n)=f(n-1)+f(n-2) (n>=3时)

              所以 f(n)

               {

                         1,        n = 1

                         2,           n = 2

               f(n-1)+f(n-2),   n > = 3

                }

 

代码如下图:

 

测试结果如下:

 

(练手题目请各位大哥不要纠结我的程序健壮性...)

 OK,今天的博客就到这里,谢谢大家!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lampard杰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值