青蛙跳台阶问题

本期介绍🍖
主要介绍:青蛙跳台阶问题,青蛙跳台阶与斐波那契数列的关系👀。
文章目录
- 1. 题目
- 2. 递归解题思路
- 3. 迭代解题思路
1. 题目
从前有一只青蛙他想跳台阶,有n级台阶,青蛙一次可以跳1级台阶,也可以跳2级台阶;问:该青蛙跳到第n级台阶一共有多少种跳法。
2. 递归解题思路
当这只青蛙跳上了第n级台阶,它只可能是从(n-2)级或(n-1)级台阶跳上第n级台阶的,因为这只青蛙每次要么跳1级台阶,要么2级台阶。假设通过跳上第(n-2)级台阶有StepJump(n-2)种跳法,第(n-1)级台阶有StepJump(n-1)种跳法。那么青蛙从第(n-2)级台阶跳上第n级台阶就有StepJump(n-2)种跳法,同理青蛙从第(n-1)级台阶跳上第n级台阶就有StepJump(n-1)种跳法,那么必然可以得到:StepJump(n) = StepJump(n-1) + StepJump(n-2),如下图所示:

照这样演化下去,跳上某级台阶的跳法等于前两级台阶跳法的和。如此往下递推,直到计算跳上第1级台阶和第2级台阶的跳法,如下图所示。青蛙跳上1级台阶只有一种跳法,跳上2级台阶有2种跳法,以此作为递归函数的限制条件。

代码如下:
#include<stdio.h>int StepJump(int n)
{if (n == 1){return 1;}else if (n == 2){return 2;}else{return StepJump(n - 1) + StepJump(n - 2);}
}int main()
{int n = 0;//需要跳的台阶数while (scanf("%d", &n) == 1){int back = StepJump(n);printf("跳上第%d级台阶有>:%d种跳法\n", n, back);}return 0;
}

3. 迭代解题思路
青蛙跳台阶特点:跳上某级台阶的跳法等于前两级台阶跳法的和,斐波那契数列的特点:每一项等于前两项之和。大家会惊讶的发现,青蛙跳平台问题的本质就是斐波那契额数列的运算。
通过求斐波那契数那一章学习,会得知使用递归实现求斐波那契数,会导致过多的冗余计算,效率过于低下。所以不妨使用迭代的思路来解决青蛙跳台阶问题,跳上1级台阶有1种跳法,跳上两级台阶有3种跳法。从第3级台阶开始往后,每级台阶都是前两级台阶跳法的和。实现代码如下:
#include<stdio.h>int StepJump(int n)
{int first = 1;int second = 1;int sum = 1;while (n >= 2){sum = first + second;first = second;second = sum;n--;}return sum;
}int main()
{int n = 0;while (scanf("%d", &n) == 1){int back = StepJump(n);printf("跳上第%d级台阶有>:%d种跳法\n", n, back);}return 0;
}


这份博客👍如果对你有帮助,给博主一个免费的点赞以示鼓励欢迎各位🔎点赞👍评论收藏⭐️,谢谢!!!
如果有什么疑问或不同的见解,欢迎评论区留言欧👀。
相关文章:
青蛙跳台阶问题
本期介绍🍖 主要介绍:青蛙跳台阶问题,青蛙跳台阶与斐波那契数列的关系👀。 文章目录 1. 题目2. 递归解题思路3. 迭代解题思路 1. 题目 从前有一只青蛙他想跳台阶,有n级台阶,青蛙一次可以跳1级台阶ÿ…...
linux日常运维2
下载linux离线安装包---- 利用 Downloadonly 插件下载 RPM 软件包及其所有依赖包 1. 先找个可以上网的linux操作系统,这里是以centos7操作系统为例,如果要使用centos6就先安装一个centos6的系统,然后让他可以上网,后面步骤如下 a.…...
flink cdc mysql整理与总结
文章目录 一、业务中常见的需要数据同步的场景CDC是什么FlinkCDC是什么CDC原理为什么是FlinkCDC业务场景flink cdc对应flink的版本 二、模拟案例1.阿里云flink sql2.开源flink sql(单机模式)flink 安装安装mysql3.flink datastream 三、总结 提示:以下是本篇文章正文…...
【三维重建】ePnP
PnP问题应用与一下场景: 已知三维点和对应二维点以及相机相机内参数,可以获取相机外参。 我们介绍其中的一种算法:ePnP 算法流程 1、ePnP算法首先在世界坐标系内寻找4个控制点,记作 C 1 w , C 2 w , C 3 w , C 4 w C_1^w,C_2^w,…...
C++进阶之路:何为运算符重载、赋值运算符重载与前后置++重载(类与对象_中篇)
✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…...
8、python基础知识图谱
...
智慧校园建设规划方案
在信息化浪潮的推动下,智慧校园的建设已成为教育现代化的必然趋势。以创新科技赋能教育,打造智慧校园,旨在提升教学品质,优化管理流程,增强学生体验。构建智慧校园需要具有前瞻性的规划方案,它将以教育为核…...
【深度学习实战—8】:基于MediaPipe的人脸检测
✨博客主页:王乐予🎈 ✨年轻人要:Living for the moment(活在当下)!💪 🏆推荐专栏:【图像处理】【千锤百炼Python】【深度学习】【排序算法】 目录 😺一、Med…...
OSCP学习,布置你的Kali Linux
为什么要写这篇文章? 我是一个OSCP学习者,以教促学。同时也能让各位入门的师傅们更好的了解OSCP这门课程。本人文笔不太好,如果有什么写的不对的地方,师傅们多多指正。 参考资料: OSCP 考试电子书 Linux Basics for…...
PWA离线优先策略:提升用户体验的关键步骤
Progressive Web Apps (PWA) 的离线优先策略是通过Service Worker和Cache API实现的,它允许在没有网络连接时仍然可以访问网站的部分或全部内容。 2500G计算机入门到高级架构师开发资料超级大礼包免费送! 1. 创建Service Worker注册文件(se…...
网页提示“非私密连接”是为什么?
网页提示“非私密连接”(英文提示可能是 "Your connection is not private" 或 "Your connection is not secure")主要是因为浏览器无法验证你正试图访问的网站的SSL/TLS证书,或者是证书存在问题,从而无法建立…...
[自动驾驶技术]-8 Tesla自动驾驶方案之硬件(AI Day 2022)
特斯拉在AI Day 2022先介绍了AI编译器,后面又介绍了Dojo的硬件软件,软件部分和AI编译器有部分重叠,本文介绍还是延用AI Day的思路,分为三部分:AI编译和推理,Dojo硬件,Dojo软件。 特斯拉车道检测…...
人力资源管理信息化系统如何支持企业开展管理诊断?
华恒智信人力资源顾问有限公司致力于帮助企业开展人力资源管理方面的各项提升改进工作,在长期的咨询工作中,最常听到企业提到的问题莫过于管理诊断方面的问题,事实上,很多企业在日常工作中,都意识到企业内部存在管理方…...
Cohere继Command-R+之后发布大模型Aya-23,性能超越 Gemma、Mistral 等,支持中文
前言 近年来,多语言大模型(MLLM)发展迅速,但大多数模型的性能依然存在显著差距,尤其是在非英语语言方面表现不佳。为了推动多语言自然语言处理技术的发展,Cohere团队发布了新的多语言指令微调模型家族——…...
身为UI设计老鸟,不学点3D,好像要被潮流抛弃啦,卷起来吧。
当前3D原则在UI设计中运用的越来越多,在UI设计中,使用3D元素可以为界面带来以下几个价值: 增强视觉冲击力:3D元素可以通过立体感和逼真的效果,为界面增添视觉冲击力,使得设计更加生动、吸引人,并…...
【C语言】实现贪吃蛇--项目实践(超详细)
前言: 贪吃蛇游戏大家都玩过吧?这次我们要用C语言来亲手制作一个!这个项目不仅能让我们复习C语言的知识,还能了解游戏是怎么一步步做出来的。我们会一起完成蛇的移动、食物的生成,还有碰撞检测等有趣的部分。准备好了…...
Elasticsearch 分析器的高级用法一(同义词,高亮搜索)
Elasticsearch 分析器的高级用法一(同义词,高亮搜索) 同义词简介分析使用同义词案例 高亮搜索高亮搜索策略unifiedplainvh 同义词 简介 在搜索场景中,同义词用来处理不同的查询词,有可能是想表达相同的搜索目标。 例…...
Python 开心消消乐
💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…...
mysql - 索引基本知识梳理
mysql索引基本知识梳理 索引介绍 官方介绍索引是帮助MySQL高效获取数据的数据结构, 原理为以空间换时间, mysql的索引采用的是B树的结构 索引的优缺点 优点: 提高查询效率降低数据库IO成本通过索引对数据进行排序, 降低排序成本, 降低CPU消耗 缺点:…...
SELA框架:融合MCTS与LLM的智能AutoML新范式
1. SELA框架:当MCTS的“棋手”思维遇上LLM的“专家”直觉在数据科学项目里,最耗时的往往不是敲代码,而是做决策。面对一个新的表格数据集,从数据清洗、特征工程到模型选型、调参,每一步都像站在一个岔路口,…...
机器学习势函数与反向蒙特卡洛在GeO2玻璃中程有序结构解析中的对比研究
1. 项目概述:当机器学习势函数遇上反向蒙特卡洛在材料模拟的世界里,我们常常面临一个两难选择:是相信基于物理化学原理构建的“经验”模型,还是完全服从实验数据的“拟合”结果?这个问题在网络形成玻璃,比如…...
ET框架:C#全栈游戏开发的热更与服务端重构实践
1. ET框架不是“又一个Unity网络库”,而是重构服务器开发范式的底层工具链很多人第一次看到“ET框架”四个字,下意识会把它归类为“Unity里用的Socket封装库”或者“带点RPC味道的通信中间件”——这种理解偏差,恰恰是踩坑的起点。我2018年在…...
基于伴随方法与Firedrake的PDE-ML可微分集成框架
1. 项目概述:当有限元遇上机器学习在计算科学与工程领域,我们常常面临一个核心挑战:如何高效地求解复杂的物理系统,并在此基础上进行优化、反演或设计。偏微分方程(PDE)是描述这些物理系统(如流…...
随机计算与ViT硬件加速:混合架构如何突破AI芯片能效墙
1. 项目概述:当ViT遇见随机计算最近在硬件加速领域,一个名为“ASCEND”的项目引起了我的注意。这本质上是一个专门为Vision Transformer(ViT)模型设计的硬件加速器,但其核心创新点在于采用了“随机计算”这种非常规的电…...
# 软考软件设计师 · 考前2天轻松复习与终极必背手册
软考软件设计师 考前2天轻松复习与终极必背手册📅 2026年5月21日 | 距考试仅剩2天 | D-2 轻松复习日 ⚠️ 今天的核心任务:翻看错题本 快速过一遍速记口诀 确认考场路线 心态放松 ❌ 不要学新内容!不要做难题!今天的任务只有一…...
量子多体系统模拟:MPS与DMRG算法实践
1. 量子多体系统模拟基础框架在量子多体系统的研究中,矩阵乘积态(MPS)已成为描述一维强关联系统的标准工具。这种表示方法的核心思想是将一个N体量子态分解为N个局部张量的收缩形式,每个张量对应一个物理位点。具体数学表达为: [ |ψ⟩ \sum…...
WSA-Pacman:让Windows安卓应用管理变得前所未有的简单
WSA-Pacman:让Windows安卓应用管理变得前所未有的简单 【免费下载链接】wsa_pacman A GUI package manager and package installer for Windows Subsystem for Android (WSA) 项目地址: https://gitcode.com/gh_mirrors/ws/wsa_pacman 想要在Windows电脑上安…...
AssetStudio深度解析:Unity序列化协议与产线级资源解包实战
1. 这不是“又一个AssetStudio教程”,而是我用它救回三个项目的真实记录AssetStudio、Unity资源提取、AssetBundle解包——这几个词,对做过Unity客户端开发、逆向分析、MOD制作或老游戏复刻的人来说,不是工具名,是救命稻草。我第一…...
AI智能体Skills设计:从API工具到核心能力的工程实践
1. 从“工具”到“能力”:重新理解AI智能体的Skills最近和几个做AI应用开发的朋友聊天,发现一个挺有意思的现象:大家一提到给智能体加“Skills”,第一反应往往是去翻看官方文档,找那个叫“Tools”或者“Functions”的列…...
