面试编程题-青蛙跳楼梯问题

在做题时遇到这个问题,查看了一些博客后,写下自己的理解
青蛙跳楼梯问题:
问题一:一只青蛙一次可以跳1级楼梯或者2级楼梯,一共有n级楼梯,问一共有多少种到达目的地的方法
根据问题可知:
n=1,一共有1种方法
n=2,一共有2种方法
n=3,一共有3种方法
n=4,一共有5种方法
n=5,一共有8种方案
。。。
根据数据的规律,我们知道n级方案的结果就是(n-1)级的结果+(n-2)级的结果,即f(n)=f(n-1)+f(n-2)
问题二:一直青蛙一次可以跳1级台阶、2级台阶或者3级台阶,一共有n级台阶,问一共有多少种到达目的地的方法
根据问题可知:
n=1,一共有1种方案
n=2,一共有2种方案
n=3,一共有4种方案
n=4,一共有7种方案
n=5,一共有13种方案
n=6,一共有24种方案
。。。
根据数据的规律,我们知道f(n)=f(n+1)+f(n+2)+f(n+3)

   所以,我们知道了,在此类问题的时候,首先需要列出从1到k对应的返回值,然后得出等式f(n)=f(n-1)+f(n-2)+f(n-3)...+f(n-k)。
   我们在计算每一次n对应的结果时,可以根据已知的n的前k个结果,分别加上1到k,即为我们所求的n对应的结果了
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值