青蛙跳台阶

  • 一、提出背景
  • 二、分析问题
  • 三、搜寻规律
  • 总结

一、提出背景

一只青蛙一次最少可以跳 1层 台阶,一次最多可以跳 2层 台阶,求:该青蛙跳上n 层 的台阶总共有多少种跳法?

二、分析问题

如上图分析:

一层台阶:1种跳法
两层台阶:2种跳法
三层台阶:3种跳法
四层台阶:5种跳法

那么我们可以列一个数列:
1 2 3 5 8 13 21 34…
对这些数字是不是很熟悉?没错,问题其实就是隐含了斐波那契数列的思想

三、搜寻规律

  1. F(1) = 1,F(2) = 2
  2. 当 n >= 3 时, F(n) = F(n - 1) + F(n - 2)

程序清单1(递归法):

public class Test1 {public static void main(String[] args) {int n = 10;for (int i = 1; i <= n; i++) {System.out.println(fib(i));}}public static int fib(int n){if(n==1 || n==2){return n;}else{return fib(n-1)+ fib(n-2);}}
}
//输出 1 2 3 5 8 13 21 34 55 89

程序清单2(迭代法):

public class Test2 {public static void main(String[] args) {int n = 10;fib(n);}public static void fib(int n){int a = 1;int b = 2;for (int i = 1; i <= n; i++) {if (i == 1 || i == 2) {System.out.println(i);} else {int c = a + b;a = b;b = c;System.out.println(c);}}}
}
//输出 1 2 3 5 8 13 21 34 55 89

迭代法分析:

总结

  1. 经典问题都是有其对应的规律的,通过画图实验一次,两次,三次…找到规律,就能得出结果,不必深挖,否则会陷入问题本身的死循环
  2. 下一篇博客,十七为大家分享汉诺塔的问题


Over. 谢谢观看哟~

青蛙跳台阶问题(史上最详细)相关推荐

  1. C语言实现青蛙跳台阶问题

    目录 一.问题描述 二.思考过程 三.用递归实现 四.用循环实现 五.输出结果 一.问题描述 一只青蛙一次可以跳上 1 级台阶,也可以跳上2 级.求该青蛙跳上一个n 级的台阶总共有多少种跳法? 二.思 ...

  2. python 爱英斯坦台阶问题_关于Python青蛙跳台阶的问题详细讲解

    Python青蛙跳台阶的问题 问题: 一只青蛙要跳上n层高的台阶,一次能跳一阶,也可以跳2阶,请问这只青蛙跳上n层高的台阶有多少种跳法? 背景知识点补充(了解) 斐波那契数列 斐波那契数列(Fibon ...

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

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

  4. 入门C语言第二话:函数(上)之锻体篇,带你玩转函数(内有汉诺塔,青蛙跳台阶等经典问题,建议收藏和分享)

    文章目录 前言 概念的引入 大纲 一.函数的定义 二.函数的分类 1.库函数 概念引入 库函数的分类 了解五步骤 例1: 1.介绍printf 2.头文件 3.所传参数及其类型 4.返回类型及其返回值 ...

  5. 面试书上一些题目的整理:O(n)复杂度排序年龄 青蛙跳台阶

    可以按照年龄的个数,设置99个桶,然后桶内处理. 青蛙跳台阶,每次1阶或者2阶,就是fib数 如果每次1到n阶,那么归纳法可得,是2^(n-1) 另外1*2 覆盖 2*n个矩阵的问题,仍然是Fib数. ...

  6. 汉诺塔问题以及青蛙跳台阶问题(附C语言代码)

    汉诺塔问题: 汉诺塔问题的源于印度一个古老传说的益智玩具.大焚天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照先大后小的顺序摞着64片圆盘.大焚天命令婆罗门把圆盘从下面按大小顺序重新摆放在 ...

  7. 【C语言刷题】青蛙跳台阶

    目录 一.问题描述 二.问题分析 1.当n=1时 2.当n=2时 3.当n=3时 4.n=4,n=5........n=n时 三.代码实现 总结 一.问题描述 一只青蛙一次可以跳上 1 级台阶,也可以 ...

  8. 青蛙跳台阶:我如何得知它是一道斐波那契数列题?——应用题破题“三板斧”

    本文以C语言实现. 目录 前言 一.斐波那契阿数列基础知识 二.引例:青蛙跳台阶 三.破题分析:举例归纳 1. 三板斧的使用 举例 模拟(必要时画图) 找规律 2. 代码展示 四.拓展用例:矩形覆盖问 ...

  9. 【剑指 Offer 46. 把数字翻译成字符串】【剑指 Offer 10- II. 青蛙跳台阶问题】【198. 打家劫舍】【动态规划】

    青蛙跳台阶,打家劫舍,字母相同编码三道题思路总结 总结我自己思路的,写的不详细,想看详细的可以跳转到我加的链接,都是力扣上同一个人写的题解,很厉害. 字符串翻译数字 字符串翻译数字 当最后一位数字单独 ...

最新文章

  1. Java_spark简单例子
  2. JSP第四课:用户注册登录设计(内置对象使用)
  3. python学精通要多久-精通python要多久
  4. 北大组织“富豪俱乐部”,有何不可?
  5. iphone同步助手_iPhone 与安卓手机之间如何进行资料迁移
  6. 基于vue-cli的webpack配置优化
  7. 【Android】怎样烧写qcn文件
  8. 表白代码(纯干货),送给你爱的人
  9. linux librtmp 编译,linux安装python-librtmp
  10. zipentry java_java中的ZipEntry是什么意思?
  11. 最详细的vs2015使用教程(有图)
  12. CDN的原理技术及使用方法
  13. Excel绘制动态图和甘特图
  14. MATLA雾霾下的交通标志识别系统[GUI界面]
  15. 袁帅做了两件意义非凡的事
  16. 【C语言】从零开始的C语言小游戏之路(总)
  17. 机械键盘轴体(红轴、茶轴、黑轴、青轴)
  18. mysql实验训练2 数据查询操作_实验训练2:数据查询操作.doc
  19. wr703n 官方固件140120版本刷openwrt
  20. 主机记录(A记录)是什么

热门文章

  1. 高速公路超速处罚 (15 分)
  2. 【Chrome Dev Tool】简单使用
  3. PackagesNotFoundError: The following packages are not available from current channels解决办法
  4. pythongps聚类_用python分析时空数据的教程(以出租车GPS为例)
  5. Cello项目填坑记_keycloak数据库初始化失败
  6. 【C语言】之把yuyv422格式的图片转换为pnm格式的图片
  7. Unity 支持的各种格式
  8. AP2813双路降压恒流驱动器5-80V
  9. python for循环语句怎么写
  10. 为什么学习React Native三点原因