问题描述:一青蛙一次可以跳上一级台阶,也可以跳上2级,试求出青蛙跳上n级台阶有多少种跳法。
我们先来看几种简单的情况:(我们用1,2分别表示跳1或2级)
n=1时:

直接跳一级1即可,共1种跳发
n=2时:

我们可以11跳,也可以2直接跳完,共2种跳法
n=3时:

可以一级一级的跳111,可以先跳1后跳2,也可以先跳2后跳1,共3种跳法
n=4时:

一级一级跳11111,或121,或112,或211,或22,共5种跳法。

经过观察,我们可以发现:假设我们现在有n个台阶,我们青蛙第一次跳1个台阶,剩下n-1个台阶,也就是求剩下n-1个台阶的跳法。如果青蛙一次跳2个台阶,剩下n-2个台阶,也就是求剩下n-2个台阶的跳法。
我们求n个台阶的跳法==求n-1个台阶的跳法+求n-2个台阶的跳法
看到这里是不是联想到什么?
对,就是斐波那契数列!(斐波那契数列详情请看笔者之前的文章)
青蛙跳台阶代码如下:

public static int frogJump(int n) {if(n==1||n==2){return 1;}else{return frogJump(n-1)+frogJump(n-2);}}public static void main(String[] args) {int x=frogJump(1);System.out.println(x);int y=frogJump(2);System.out.println(y);int z=frogJump(3);System.out.println(z);}

几组测试示例如下:

java青蛙跳台阶问题相关推荐

  1. 青蛙跳石头java_Java青蛙跳台阶问题的解决思路与代码

    问题描述 一只青蛙一次可以跳上1级台阶,也可以一次跳上2级台阶,请问跳上n级台阶,该请娃一共有多少种跳法? 解决思路 ①如果只有1级台阶,那显然只有一种跳法. ②如果有2级台阶,那么就有2种跳法,一种 ...

  2. 《LeetCode力扣练习》剑指 Offer 10- II. 青蛙跳台阶问题 Java

    <LeetCode力扣练习>剑指 Offer 10- II. 青蛙跳台阶问题 Java 一.资源 题目: 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶.求该青蛙跳上一个 n 级的台阶总 ...

  3. 青蛙跳石头java_青蛙跳台阶(JAVA)与递归问题探究

    青蛙跳台阶JAVA 一只青蛙一次可以跳上一层台阶,也可以跳上两层,求该青蛙跳上n层的台阶总共有多少种跳法(先后次序不同算不同的结果). 思考:可以看出,每次青蛙出脚都会有两种可能,一步或者两步,再次出 ...

  4. Java:青蛙跳台阶

            一只青蛙一次可以跳一级台阶,也可以一次跳2级台阶,那么一只青蛙跳上一个n级台阶总共有几种跳法?         通过画图分别分析一只青蛙跳上一个1级台阶.2级台阶.3级台阶和4级台阶台 ...

  5. Java小青蛙跳台街,青蛙跳台阶问题:Java版,递归算法和循环

    青蛙跳台阶 青蛙跳台阶,青蛙每一次可以跳1阶或2阶,假设有n阶台阶,青蛙要跳完所有台阶,有多少种跳法? 引入斐波那契数列 对于斐波那契数列,百度百科是这么解释的: 斐波那契数列(Fibonacci s ...

  6. 面试算法-青蛙跳台阶问题(JAVA实现)

    题干 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个 n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 数据范围:0<= n <=40 要求:时间复杂度:O(n) ...

  7. 【LeetCode】剑指 Offer 10- II. 青蛙跳台阶问题

    [LeetCode]剑指 Offer 10- II. 青蛙跳台阶问题 文章目录 [LeetCode]剑指 Offer 10- II. 青蛙跳台阶问题 一.动态规划 总结 一.动态规划 class So ...

  8. 【LeetCode力扣】青蛙跳台阶问题,一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。

    学习目标: 目标:熟练运用 Java所学知识 题目内容: 本文内容: 使用Java实现:青蛙跳台阶问题 文章目录 学习目标: 题目内容: 题目描述 实现思路: 实现代码: 运行结果: 题目描述 一只青 ...

  9. 青蛙跳台阶变态青蛙跳台阶

    一.青蛙跳台阶 问题描述: 一只青蛙一次可以跳上1级台阶,也可以一次跳上2级台阶,请问跳上n级台阶,该请娃一共有多少种跳法? 解题思路: 1.如果只有1级台阶,只有一种跳法. 2.如果有2级台阶,只有 ...

  10. 远景能源_笔试_青蛙跳台阶

    import java.util.Scanner; /**    * 青蛙跳台阶,简单的斐波那契数列    * 注意数过大时要在循环中对和求mod1000000007 * @author zhaoz ...

最新文章

  1. 四种方法解决最大连续子序列和问题
  2. Make sure the device specification refers to a valid device
  3. 2020-1024=996
  4. Java集合TreeSet
  5. like mysql 相反_Mysql数据库的常用操作
  6. 在嵌入式Jetty(Embedded Jetty)中部署FastCGI Servlet载入PHP程序
  7. oracle重建控制文件流程,ORACLE之重建控制文件
  8. GDCM:gdcm::FileDecompressLookupTable的测试程序
  9. 同底数幂比较大小方法_知识体系构建:初中数学4大知识点及10大解题方法总结(干货)...
  10. deepin部署python开发环境_deepin系统下部署Python3.5的开发及运行环境
  11. Alpha冲刺(7/10)
  12. CTF-MISC杂项题2
  13. Netty学习总结(1)——Netty入门介绍
  14. WCF(一) ---- 简单调用
  15. linux fork脚本,shell调度脚本的三种不同方法(fork, exec, source)
  16. 离职通知邮件主题写什么好_离职邮件主题怎么写
  17. 计算机硬件管理措施,浅谈计算机硬件的维护与管理措施
  18. Python新建一个文件目录,python怎么创建新文件
  19. 支付宝:验签出错,建议检查签名字符串或私钥与应用公钥是否匹配,网关生成的验签字符串为...
  20. Add/SubtractWorkingDaystoaDate_SAP刘梦_新浪博客

热门文章

  1. 2021年茶艺师(中级)考试内容及茶艺师(中级)操作证考试
  2. server manager无法打开
  3. sql服务器显示空白,sql服务器空白
  4. 互联网日报 | 2月3日 星期三 | 微信5000万份红包封面免费领;抖音回应“封杀腾讯”谣言;爱驰汽车入局网约车...
  5. c语言文字表达式,【原创】化学方程式配平算法的设计与实现( 非Naylon版)
  6. Xcode iOS开发:UIKit常用组件之按钮控件
  7. Temporal Abstraction
  8. Hydra/Medusa爆破工具命令参数和简单操作
  9. Nature Biotechnol | 李家洋/余泓团队利用平铺删除策略打破性状连锁,突破水稻产量瓶颈...
  10. macbook键盘失灵_如何使用MacBook的键盘在所有设备上键入