java青蛙跳台阶问题
问题描述:一青蛙一次可以跳上一级台阶,也可以跳上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青蛙跳台阶问题相关推荐
- 青蛙跳石头java_Java青蛙跳台阶问题的解决思路与代码
问题描述 一只青蛙一次可以跳上1级台阶,也可以一次跳上2级台阶,请问跳上n级台阶,该请娃一共有多少种跳法? 解决思路 ①如果只有1级台阶,那显然只有一种跳法. ②如果有2级台阶,那么就有2种跳法,一种 ...
- 《LeetCode力扣练习》剑指 Offer 10- II. 青蛙跳台阶问题 Java
<LeetCode力扣练习>剑指 Offer 10- II. 青蛙跳台阶问题 Java 一.资源 题目: 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶.求该青蛙跳上一个 n 级的台阶总 ...
- 青蛙跳石头java_青蛙跳台阶(JAVA)与递归问题探究
青蛙跳台阶JAVA 一只青蛙一次可以跳上一层台阶,也可以跳上两层,求该青蛙跳上n层的台阶总共有多少种跳法(先后次序不同算不同的结果). 思考:可以看出,每次青蛙出脚都会有两种可能,一步或者两步,再次出 ...
- Java:青蛙跳台阶
一只青蛙一次可以跳一级台阶,也可以一次跳2级台阶,那么一只青蛙跳上一个n级台阶总共有几种跳法? 通过画图分别分析一只青蛙跳上一个1级台阶.2级台阶.3级台阶和4级台阶台 ...
- Java小青蛙跳台街,青蛙跳台阶问题:Java版,递归算法和循环
青蛙跳台阶 青蛙跳台阶,青蛙每一次可以跳1阶或2阶,假设有n阶台阶,青蛙要跳完所有台阶,有多少种跳法? 引入斐波那契数列 对于斐波那契数列,百度百科是这么解释的: 斐波那契数列(Fibonacci s ...
- 面试算法-青蛙跳台阶问题(JAVA实现)
题干 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个 n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 数据范围:0<= n <=40 要求:时间复杂度:O(n) ...
- 【LeetCode】剑指 Offer 10- II. 青蛙跳台阶问题
[LeetCode]剑指 Offer 10- II. 青蛙跳台阶问题 文章目录 [LeetCode]剑指 Offer 10- II. 青蛙跳台阶问题 一.动态规划 总结 一.动态规划 class So ...
- 【LeetCode力扣】青蛙跳台阶问题,一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。
学习目标: 目标:熟练运用 Java所学知识 题目内容: 本文内容: 使用Java实现:青蛙跳台阶问题 文章目录 学习目标: 题目内容: 题目描述 实现思路: 实现代码: 运行结果: 题目描述 一只青 ...
- 青蛙跳台阶变态青蛙跳台阶
一.青蛙跳台阶 问题描述: 一只青蛙一次可以跳上1级台阶,也可以一次跳上2级台阶,请问跳上n级台阶,该请娃一共有多少种跳法? 解题思路: 1.如果只有1级台阶,只有一种跳法. 2.如果有2级台阶,只有 ...
- 远景能源_笔试_青蛙跳台阶
import java.util.Scanner; /** * 青蛙跳台阶,简单的斐波那契数列 * 注意数过大时要在循环中对和求mod1000000007 * @author zhaoz ...
最新文章
- 四种方法解决最大连续子序列和问题
- Make sure the device specification refers to a valid device
- 2020-1024=996
- Java集合TreeSet
- like mysql 相反_Mysql数据库的常用操作
- 在嵌入式Jetty(Embedded Jetty)中部署FastCGI Servlet载入PHP程序
- oracle重建控制文件流程,ORACLE之重建控制文件
- GDCM:gdcm::FileDecompressLookupTable的测试程序
- 同底数幂比较大小方法_知识体系构建:初中数学4大知识点及10大解题方法总结(干货)...
- deepin部署python开发环境_deepin系统下部署Python3.5的开发及运行环境
- Alpha冲刺(7/10)
- CTF-MISC杂项题2
- Netty学习总结(1)——Netty入门介绍
- WCF(一) ---- 简单调用
- linux fork脚本,shell调度脚本的三种不同方法(fork, exec, source)
- 离职通知邮件主题写什么好_离职邮件主题怎么写
- 计算机硬件管理措施,浅谈计算机硬件的维护与管理措施
- Python新建一个文件目录,python怎么创建新文件
- 支付宝:验签出错,建议检查签名字符串或私钥与应用公钥是否匹配,网关生成的验签字符串为...
- Add/SubtractWorkingDaystoaDate_SAP刘梦_新浪博客
热门文章
- 2021年茶艺师(中级)考试内容及茶艺师(中级)操作证考试
- server manager无法打开
- sql服务器显示空白,sql服务器空白
- 互联网日报 | 2月3日 星期三 | 微信5000万份红包封面免费领;抖音回应“封杀腾讯”谣言;爱驰汽车入局网约车...
- c语言文字表达式,【原创】化学方程式配平算法的设计与实现( 非Naylon版)
- Xcode iOS开发:UIKit常用组件之按钮控件
- Temporal Abstraction
- Hydra/Medusa爆破工具命令参数和简单操作
- Nature Biotechnol | 李家洋/余泓团队利用平铺删除策略打破性状连锁,突破水稻产量瓶颈...
- macbook键盘失灵_如何使用MacBook的键盘在所有设备上键入