问题描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 题目分析: 1)这里的f(n) 代表的是n个台阶有一次1,2,...n阶的 跳法数。 2)n = 1时,只有1种跳法,f(1) = 1 3) n = 2时,会有两个跳得方式,一次1阶或者2阶,这回归到了问题(1) ,f(2) = f(2-1) + f(2-2)

4) n = 3时,会有三种跳得方式,1阶、2阶、3阶,

那么就是第一次跳出1阶后面剩下:f(3-1);第一次跳出2阶,剩下f(3-2);第一次3阶,那么剩下f(3-3)

因此结论是f(3) = f(3-1)+f(3-2)+f(3-3) 5) n = n时,会有n中跳的方式,1阶、2阶...n阶,得出结论:

f(n) = f(n-1)+f(n-2)+...+f(n-(n-1)) + f(n-n) => f(0) + f(1) + f(2) + f(3) + ... + f(n-1)

6) 由以上已经是一种结论,但是为了简单,我们可以继续简化:

f(n-1) = f(0) + f(1)+f(2)+f(3) + ... + f((n-1)-1) = f(0) + f(1) + f(2) + f(3) + ... + f(n-2)

f(n) = f(0) + f(1) + f(2) + f(3) + ... + f(n-2) + f(n-1) = f(n-1) + f(n-1)

可以得出:

f(n) = 2*f(n-1)

7) 得出最终结论,在n阶台阶,一次有1、2、...n阶的跳的方式时,总得跳法为:

| 1

,(n=0 )

f(n) =

| 1

,(n=1 )

| 2*f(n-1),(n>=2)

public class Solutionn { public static int jumpFloor(int target) { if (target <= 0) { return -1; } else if (target == 1) { return 1; } else { return 2 * jumpFloor(target - 1); } } public static void main(String[] args) { System.out.println(jumpFloor(3)); } } 简单总结: 因为n级台阶,第一步有n种跳法:跳1级、跳2级、到跳n级 跳1级,剩下n-1级,则剩下跳法是f(n-1) 跳2级,剩下n-2级,则剩下跳法是f(n-2) 所以f(n)=f(n-1)+f(n-2)+...+f(1) 因为f(n-1)=f(n-2)+f(n-3)+...+f(1) 所以f(n)=2*f(n-1)

java魅族面试题_魅族2016Java互联网方向其中一道笔试题--青蛙跳台阶问题相关推荐

  1. 魅族2016Java互联网方向其中一道笔试题--青蛙跳台阶问题

    问题描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级--它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 题目分析: 1)这里的f(n) 代表的是n个台阶有一次1,2,...n阶的 跳 ...

  2. 深信服python面试题_(完整版)往年的深信服笔试题(齐全)

    • 一,六道选择题 (可以多选) 1 char *p = "hello world"; p 存储在()指向 // 堆栈 char p[] = "hello world&q ...

  3. 360集团2016JAVA研发工程师内推笔试题

    360集团2016JAVA研发工程师内推笔试题 题目来源:牛客网 https://www.nowcoder.com/test/question/analytic?tid=21122281 1.执行以下 ...

  4. 一道笔试题--求二进制数1的个数

    要进一家新公司难免要进行笔试,虽然笔试通过的人很多都有背题之嫌,但是统计意义上最起码可以看出一个程序员的认真程度,毕竟很多公司的考题也不是自己创的,也是在网上偷的,允许公司偷题就必须允许应聘者偷答案. ...

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

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

  6. 给定一个数值,输出符合中国人习惯的读法--记一道笔试题

    题目:给定一个数字,最大小于一万亿,输出符合中国人习惯的读法,例如: a.12输出:十二 b.102输出:一百零二 c.1002输出:一千零二 d.112输出:一百十二 e.10112输出:一万零一百 ...

  7. C#在类型实例化时都干了什么:从一道笔试题说开去

    C#在类型实例化时都干了什么:从一道笔试题说开去 原文来自:http://www.cnblogs.com/instance/archive/2011/05/27/2059409.html 前一阵子我参 ...

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

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

  9. 从一道笔试题谈算法优化(下)

    因为受到经济危机的影响,我在 bokee.com 的博客可能随时出现无法访问的情况:因此将2005年到2006年间在 bokee.com 撰写的博客文章全部迁移到 csdn 博客中来,本文正是其中一篇 ...

最新文章

  1. map:map指向最后一个元素?指向第一个元素?
  2. php贝叶斯,php – 将单个概率与朴素贝叶斯垃圾邮件过滤相结合
  3. 企业门户项目实施方法论(IPS方法简介),适用于企业门户项目的项目管理方法论(上篇)...
  4. java%4d_java积累
  5. Gradle技巧–显示buildscript依赖项
  6. USACO section1.3 Barn Repair 修理牛棚(贪心)
  7. 三容水箱液位控制系统_光电液位传感器在饮水机中的应用解决方案
  8. oracle的存储过程优缺点
  9. python hello world程序编写_自动编写Python程序的神器,Python 之父都发声力挺
  10. 高速公路坐标高程计算软件3.3版本发布
  11. 转:机器人工程师学习计划(YY硕)(后悔自己没有早点看到强力推荐)
  12. CAD解决学生版的问题
  13. r语言和python的区别-Python和R语言的区别?
  14. 四种XML解析方式详解
  15. 矩阵知识:线性变换、相似矩阵、对角矩阵、逆矩阵
  16. java 零拷贝_牛逼哄哄的零拷贝是什么?
  17. 班得瑞轻音乐全集[下载]
  18. php linux OpenOffice+JODConverter+php实现将word/ppt/excel文档转换为pdf
  19. 黑马程序员匠心之作|C++教程从0到1入门编程-c++核心编程
  20. [java] JDBC数据库编程

热门文章

  1. mysql下载云盘_mysql5.5安装教程:mysql下载与安装
  2. 计算机的数据输入u盘,丢失存在U盘里的数据的几种原因-电脑自学网
  3. Android随机验证码的生成
  4. docker安装及镜像加速mac
  5. Windows电脑如何更改账户类型
  6. 计算机系统层次模型,中常用的数据模型层次模型网格模型关系模型
  7. c++类内的static变量初始化和static函数
  8. QT中将ASCII转换为对应数值的方法
  9. IntelliJ IDEA 自动导入包设置
  10. python画树林_如何用Scikit-learn可视化随机森林中的一棵树