青蛙跳台阶(递归法)

//萌新第一次写博客,语言不太准确,代码可能也比较屎,不喜轻喷~ 

青蛙跳台阶:

        一只青蛙可以一次跳一级或者两级台阶,现给定一个数n,若青蛙初始在第零级台阶,要跳到第n级台阶,求共有几种跳法。

        按照正向思维,我们知道青蛙在第0级时可以跳到第1或2级,在第1级时又可以跳到第2或3级......以此类推,分支越走越多不利于计数统计,且难以控制分支的结束,因此我们暂且放弃正面硬刚,采用反向思维

        由上面的分析发现难以控制分支结束的条件。设青蛙现处于第m级,当m=n时结束分支,又因为青蛙要到第n级必须先到第n-1级或n-2级,要到n-1级要先到n-2级或n-3级......以此类推,每次前推将此问题分成更多更简单的问题,可以使用递归法解决,思路如下:

         欲到第n级,先到n-1级或者n-2级,且在第n-1级时有且只有一种跳法到第n级,在第n-2级时有两种跳法:1.跳一次两级 2.跳两次一级,但是2.时会跳到n-1级产生重复,因此也只有一种跳法.综上,

跳到n级的方法 = 跳到n-1级的方法 + 跳到n-2级的方法  种,

显然当n=1有且只有一种跳法,n=2时有两种跳法,所以我们设置最基本的问题答案为1或2,进行递归操作,代码如下 :

 </

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值