【Java成王之路】第六篇:Java SE(青蛙跳台阶问题详解)

2.画图分析

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

3.问题讲解

一只青蛙,要么1次跳2个台阶,要么1次跳1个台阶。

假设3个台阶为例:如果1次跳1个台阶,那剩下几种跳法?我们来仔细地想一下:

跳了一个台阶之后,剩下的台阶就相当于3 -1个台阶剩下2个台阶,2个台阶的跳法如上图就是2种跳法。

如果一次跳2个台阶,剩下的台阶就相当于3 - 2个台阶剩下1个台阶,1个台阶的跳法如上图是1种跳法。那么加起来就是3种跳法。

所以说,你如果想知道n个台阶有多少种跳法,其实就是看n - 1个台阶有多少种跳法,加上n - 2个台阶有多少种跳法。

规律看懂后你就发现这其实就是一个变相的斐波那契数列,只不过这个数列的第一项是1,第二项是2.

4. 代码设计思路

我们再来看一下斐波那契数列的写法:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

  • 22
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值