在做题时遇到这个问题,查看了一些博客后,写下自己的理解
青蛙跳楼梯问题:
问题一:一只青蛙一次可以跳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对应的结果了
import java.util.Scanner;public class FrogJumpStairs {//本例只适用于问题二的描述public static void main(String[] args){Scanner sc = new Scanner(System.in);while(sc.hasNextLine()){int num = sc.nextInt();int result = ThreeJump(num);System.out.println(result);}}public static int ThreeJump(int num){int result = 0;if(num == 1){return 1;}else if(num == 2){return 2;}else if(num == 3){return 4;}else{result = ThreeJump(num-1)+ThreeJump(num-2)+ThreeJump(num-3);}return result;}
}

参考网址:
http://blog.sina.com.cn/s/blog_6dc9e4cf0100uwv7.html
http://blog.csdn.net/wukaibo1986/article/details/6987424

面试编程题-青蛙跳楼梯问题相关推荐

  1. java校招面试题_java校招面试编程题及答案.docx

    java校招面试编程题及答案 java校招面试编程题及答案 Java集合框架为Java编程语言的基础,也是Java面试中很重要的一个知识点.这里,我列出了一些关于Java集合的重要问题和答案. 集合框 ...

  2. 买卖股票最佳时机+青蛙跳楼梯

    1.买卖股票最佳时机 数组 numbers: [1,2,6,3,4] 想求的最佳买卖时机,暴力解法,可以使用for循环,循环两次,查看最大差值 较优方案:动态规划 初始化一个Min值和一个Max值,m ...

  3. c语言面试编程笔试题,C语言面试编程题

    C语言面试编程题 发布时间:2021-04-10 在C语言中,输入和输出是经由标准库中的一组函数来实现的.在ANSI/ISO C中,这些函数被定义在头文件;中.下面就由第一范文网小编为大家介绍一下C语 ...

  4. 面试编程题胡萝卜切片

    面试编程题胡萝卜切片 记录一下python实现 class Solution:def last_carrot_weight(self, carrots: list):while True:a=[]fo ...

  5. android 面试算法题:青蛙跳楼梯 阶乘求和 三位数中的水仙花数

    第一题:一只青蛙一次可以跳上1级台阶,也可以跳上2级--它也可以跳上x级.求该青蛙跳上一个x级的台阶总共有多少种跳法. 解题思路: 如果只有1 级台阶,那就只有一种跳法: 如果只有2 级台阶,那就有两 ...

  6. 小米一面经验分享,面试编程题

    第一次面试大厂,其实挺紧张的. 本人应届生,面试岗位是小米的嵌入式工程师 一面是技术基础面流程:自我介绍 - 面试官自我介绍 - 根据简历内容提问 - 手撕代码 面试官人很好,每次提问之后,都会再阐述 ...

  7. 剑指offer 青蛙跳楼梯

    题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级--它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法.(变态跳楼梯) 解题思路 1.数学归纳 因为n级台阶,第一步有n种跳法:跳1级. ...

  8. [剑指offer][JAVA]面试题第[10-2]题[青蛙跳台阶问题][动态规划][递归]

    [问题描述][中等] 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶.求该青蛙跳上一个 n 级的台阶总共有多少种跳法.答案需要取模 1e9+7(1000000007),如计算初始结果为:100000 ...

  9. 题目 1878: 蓝桥杯2017年第八届真题-青蛙跳杯子

    题目 X星球的流行宠物是青蛙,一般有两种颜色:白色和黑色. X星球的居民喜欢把它们放在一排茶杯里,这样可以观察它们跳来跳去. 如下图,有一排杯子,左边的一个是空着的,右边的杯子,每个里边有一只青蛙. ...

最新文章

  1. 【英语】英语学习之道
  2. php mysql读取数组_php实现通用的从数据库表读取数据到数组的函数实例
  3. TCP流量控制与拥塞控制区别
  4. python - work3
  5. 高门槛的动作捕捉技术,真的会成为VR行业灾难的缔造者吗?
  6. 经典实战案例:用机器学习 KNN 算法实现手写数字识别 | 原力计划
  7. spring web.xml配置服务启动后执行文件
  8. opencv_python学习笔记十三
  9. 乐高ev3搭建图_你所不知道的乐高EV3发展史
  10. HCIE-Datacom V1.0 考试大纲
  11. 【JAVA】数据结构——二叉树的学习
  12. SAP License:FI/CO模块常用表及事务代码
  13. 安卓系统开发常用的框架
  14. linux grep命令要查找的内容有双引号
  15. java se运行环境_Java运行环境Java SE Runtime Environment (JRE) 下载
  16. 【Unity开发小技巧】Unity日志输出存储
  17. Python 画玫瑰花
  18. 微信小程序map 地图引入配置+腾讯地图地址坐标解析
  19. Java:新世纪时代的召唤--启航
  20. 丢手帕问题 java_java基于双向环形链表解决丢手帕问题的方法示例

热门文章

  1. java ee jar_javaee.jar下载
  2. 点云孔洞定位_散乱点云的孔洞识别和边界提取算法研究
  3. Python数字、字符串、数组之间的相互转换
  4. Java对URL中的中文进行UrlEncode转码
  5. ViewPager添加小圆点
  6. vue-lic脚手架安装与部署项目流程
  7. 九江学院寝室计算机,计算机网络毕业论文学生宿舍管理系统--186430916.doc
  8. Node Sass does not yet support your current environment: OS X Unsupported architecture (arm64)
  9. Mina Berkeley QANet测试网zkApp初体验
  10. shell调用api store查询手机号码归属地