【剑指Offer】斐波那契数列之青蛙跳台阶
题目问题一一只青蛙一次可以跳上1级台阶也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。问题二一只青蛙一次可以跳上1级台阶也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。分析分析问题一将跳法总数记为f(n)可以知道f(1)1f(2)2。当n2时第一次跳1级的话还有f(n-1)种跳法第一次跳2级的话还有f(n-2)种跳法所以可以推得f(n)f(n-1)f(n-2)即为斐波那契数列。所以用斐波那契的解法来解即可。分析问题二解法一当n1时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≥2f(n-1) f(n-2)f(n-3).....f(1)1 n2由上面两式相减可得f(n)-f(n-1)f(n-1)即f(n) 2*f(n-1) (n2)最终结合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(); } }

相关新闻

MySQL——基础知识

MySQL——基础知识

目录 1. 事务的四个特性 ACID (1)A (atomicity)原子性 (2)C(consistency)一致性: (3)I (isolation)隔离性&#xff…

2026/7/28 17:13:56阅读更多 →
终极指南:浏览器端离线语音识别技术深度解析与Vosk-Browser实战

终极指南:浏览器端离线语音识别技术深度解析与Vosk-Browser实战

终极指南:浏览器端离线语音识别技术深度解析与Vosk-Browser实战 【免费下载链接】vosk-browser A speech recognition library running in the browser thanks to a WebAssembly build of Vosk 项目地址: https://gitcode.com/gh_mirrors/vo/vosk-browser 在…

2026/7/28 17:13:56阅读更多 →
C++高精度计算:从零实现万进制大整数类(BigInt)

C++高精度计算:从零实现万进制大整数类(BigInt)

1. 项目概述:为什么我们需要自己造一个“大整数”?在C的标准库里,int、long long这些内置整数类型大家用得都很顺手,直到你某天刷题或者处理实际业务时,遇到了一个需要计算1000位甚至10000位数字的场景。比如&#xff…

2026/7/28 17:11:56阅读更多 →
炉石传说佣兵战记:5分钟掌握终极自动化脚本使用指南

炉石传说佣兵战记:5分钟掌握终极自动化脚本使用指南

炉石传说佣兵战记:5分钟掌握终极自动化脚本使用指南 【免费下载链接】lushi_script This script is to save your time from Mercenaries mode of Hearthstone 项目地址: https://gitcode.com/gh_mirrors/lu/lushi_script 还在为炉石传说佣兵战记模式的重复操…

2026/7/28 18:24:07阅读更多 →
轮播图

轮播图

//轮播图function animate (offset) {if (offset 0) {return;}animated true;var time 300;var inteval 10;var speed offset/(time/inteval);var left parseInt(list.style.left) offset;var go function (){if ( (speed > 0 && parseInt(list.style.left)…

2026/7/28 18:24:07阅读更多 →
免费开源AMD Ryzen调试神器:SMUDebugTool完整指南,5分钟掌握硬件调优

免费开源AMD Ryzen调试神器:SMUDebugTool完整指南,5分钟掌握硬件调优

免费开源AMD Ryzen调试神器:SMUDebugTool完整指南,5分钟掌握硬件调优 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Tabl…

2026/7/28 18:24:07阅读更多 →
Java虚拟机入门知识以及面试常见题

Java虚拟机入门知识以及面试常见题

一、什么是JVM虚拟机 JVM是Java Virtual Machine(Java虚拟机)的缩写,是一种用于计算机设备的规范,它是一个虚构出来的计算机,通过在实际计算机上仿真模拟各种计算机功能来实现的。只要计算机设备上安装了JVM&#xff…

2026/7/28 18:24:07阅读更多 →
OpenCore Legacy Patcher:三步免费解锁老Mac的macOS新系统体验

OpenCore Legacy Patcher:三步免费解锁老Mac的macOS新系统体验

OpenCore Legacy Patcher:三步免费解锁老Mac的macOS新系统体验 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 你是否还在为手中的老款Mac无法升级…

2026/7/28 18:24:07阅读更多 →
Playwright自定义Fixtures:解决测试数据管理与环境隔离的工程实践

Playwright自定义Fixtures:解决测试数据管理与环境隔离的工程实践

1. 项目概述:为什么我们需要自定义 Fixtures?如果你在用 Playwright 做自动化测试,大概率已经熟悉了它的test函数和page对象。官方提供的test和page这些内置 Fixtures 确实方便,开箱即用。但当你开始构建一个稍具规模的测试套件时…

2026/7/28 18:22:07阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/28 4:06:39阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/28 2:08:06阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/28 1:38:28阅读更多 →
告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 你是否也曾为官方Om…

2026/7/28 0:00:29阅读更多 →
RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

做 RAG 的人应该都踩过这个致命的坑:把几百页的财报、法规、技术手册扔给向量库,问一个具体问题,搜出来的全是沾边但没用的内容 —— 关键信息要么被硬切块拆碎了,要么藏在几十条结果的最下面。语义相似≠真正相关,这个…

2026/7/28 0:00:29阅读更多 →
抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

2026年做短视频运营,从抖音上扒文案早就不是偷偷抄笔记的事了。我刚开始做内容的时候,每天刷半小时抖音,手动把爆款视频的口播敲进备忘录,一条2分钟的视频得花十来分钟,碰到语速快的还要反复回听。后来试了一圈工具&am…

2026/7/28 0:00:29阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/27 16:57:54阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/28 3:17:03阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/28 2:35:58阅读更多 →