尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

【剑指Offer】斐波那契数列之青蛙跳台阶

【剑指Offer】斐波那契数列之青蛙跳台阶
📅 发布时间:2026/7/28 17:32:15

题目

问题一:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

问题二:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

分析

分析问题一:

将跳法总数记为f(n),可以知道f(1)=1,f(2)=2。当n>2时,第一次跳1级的话,还有f(n-1)种跳法;第一次跳2级的话,还有f(n-2)种跳法,所以可以推得f(n)=f(n-1)+f(n-2),即为斐波那契数列。所以,用斐波那契的解法来解即可。

分析问题二:

解法一:

当n=1时,f(1)=1。

当n大于1时,归纳总结可知:跳上n级台阶,第一次跳1级的话,有f(n-1)种方法;第一次跳2级的话,有f(n-2)种方法……第一次跳n-1级的话,有f(1)种方法;直接跳n级的话,有1种方法,所以可以得到如下公式:

f(n) = f(n-1)+f(n-2)+......f(1)+1 (n≥2)

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

由上面两式相减可得,f(n)-f(n-1)=f(n-1),即f(n) = 2*f(n-1) (n>2)

最终结合f(1)和f(2),可以推得:f(n)=2^(n-1)

解法二:除了最后一个台阶外,其余的木板都有存在和不存在两种可能性,所以n-1块木板有2^(n-1)种跳法。

代码

package com.Fibonacci; //青蛙跳台阶的2种方式 public class FrogJump { public static int FrogJump1(int n){ if(n < 0){ return 0; } if(n == 1){ return 1; } return FrogJump1(n-1) + FrogJump1(n-2); } public static int FrogJump2(int n){ if(n < 0){ return 0; } if(n == 0){ return 1; } if(n == 1){ return 1; } int prePre = 0; int pre = 1; int result = 1; for(int i = 2; i <= n; i++){ result = prePre + pre; prePre = pre; pre = result; } return result; } public static void main(String[] args){ System.out.println(FrogJump2(3)); System.out.println(FrogJump2(4)); } }
package com.Fibonacci; public class HardFrogJump { //递归 public static int HardFrogJump1(int n){ if(n <= 0){ return 0; } if(n == 1) { return 1; } return 2 * HardFrogJump1(n-1); } //迭代 public static int HardFrogJump2(int n){ if(n <= 0){ return 0; } if(n == 1){ return 1; } int pre = 1; int result = 2; for(int i = 2; i <= n; i++){ result = 2 * pre; pre = result; } return result; } public static void main(String[] args){ System.out.println(); } }

相关新闻

  • 前端转网安真的快吗,JavaScript 技能在渗透测试中到底能省多少力
  • 杭州企业财税业务服务商推荐|2026 正规财税公司十个甄选浙江乘风财务咨询有限公司:疑难税务代办/资质代办/补贴代办财税 - 栗子测评
  • 2026新版三明防水补漏服务商参考|阳台渗漏修缮方案指南 - 筑宅安

最新新闻

  • python 类中的递归函数使用
  • 深圳夏令营:军博营地典范 - 17728098551
  • 【单片机毕业设计推荐】 基于 51/STM32 单片机的智能感应台灯控制系统设计与实现,基于 51/STM32 单片机的蓝牙可控人体感应调光台灯设计(011904)
  • 传统图像处理算法总结
  • Godot着色器基础
  • 【自然语言处理】

日新闻

  • 力旷智能:伺服驱动系统在制药收瓶设备中的应用解析
  • 2026 网安入门避坑指南,零基础如何避开无效学习直接上手实战
  • 揭秘CFC项目:如何通过手机摄像头实现850kbps无网络文件传输

周新闻

  • 大连理工大学与东京大学联手打造的“主动型AI助手“
  • 170.2026年国家级科研瓶颈:超精密单点金刚石切削(SPDT)光学表面生成
  • SongBloom:革命性歌曲生成框架深度解析——如何通过交织自回归与扩散模型创作完整音乐

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号