C++递推经典案例No.1——青蛙跳台问题

2023-10-27

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

这是一个经典的递归/动态规划的例题,代码部分并不难,关键是要理清思路。由于每次可以跳1个或者两个,所以跳到当前台阶的来源只有两种:下一个和下两个台阶。因此,来到当前台阶的方案数,其实是前两者方案数的和!以此类推,直到找到最下面两个台阶(0和1)即可解出答案。

此处,我们用二叉树的思想进行简单的理解:

如上图,直到找到0或1,才能达到本次递归的终点(0or1都对)。

 具体代码如下:

#include <iostream>
#include <vector>
using namespace std;


int main(int argc, char** argv) 
{
	int n=0;
	cin>>n;
	vector<int> V;
	V.push_back(1);
	V.push_back(1);
	//压入0和1对应的方案数作为递归终点 
	for(int i=2;i<=n;i++)
	{
		int temp=V[i-1]+V[i-2];
		//方案数等于前两项的和 
		V.push_back(temp);
	}
	cout<<V[n]<<endl;
	
	return 0;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++递推经典案例No.1——青蛙跳台问题 的相关文章

随机推荐

  • MySQL数据库渗透及漏洞利用总结

    Mysql数据库是目前世界上使用最为广泛的数据库之一 很多著名公司和站点都使用Mysql作为其数据库支撑 目前很多架构都以Mysql作为数据库管理系统 例如LAMP 和WAMP等 在针对网站渗透中 很多都是跟Mysql数据库有关 各种Mys
  • FCKEditor 2.3.2 的type漏洞修复

    从网上下了最新的FCKeditor 2 3 2和对应的JSP整合文件FCKeditor 2 3 安装后进行测试 发现type漏洞仍然存在 汗 漏洞情况是 或在type后面跟上一个非file image flash media参数 就可以上传
  • 探索数据分析与可视化:使用R语言实现

    探索数据分析与可视化 使用R语言实现 概述 数据分析与可视化是现代数据科学中至关重要的环节 R语言作为一种强大的统计分析工具和编程语言 提供了丰富的功能和库来处理数据 进行统计分析和生成可视化图表 本文将介绍如何使用R语言进行数据分析与可视
  • 关于 cocos2d-x win32 版本的 cpu 占用改良

    初学 c2dx 下载的 2 02 版本 发现其 HelloWorld 演示项目 居然一直占据了 100 的 CPU 猜测它有可能是在主循环里使用了 Sleep 0 一搜 果然定位到具体代码 它位于 cocos2dx platform win
  • Flutter常用布局方式

    文章目录 flutter 布局介绍 一 Container 布局 1 属性 2 示例 二 线性布局 1 说明 2 属性 3 示例 三 弹性布局 Flex 1 属性 2 Expanded 的使用 3 示例 四 流式布局 1 说明 2 属性 3
  • 方差、标准差、平方差、残差

    2018 06 21 创建人 Ruo Xiao 邮箱 xclsoftware 163 com 2018 06 29 修改人 Ruo Xiao 增加对残差的说明 一 方差 1 定义 数据分别与其平均数的差的平方和的平均数 由 D 表示 2 意
  • Nssm 安装Window服务

    环境 Wind10 1 下载nssm exe 官网 http nssm cc download 2 解压 根据操作系统选择32位或64位nssm 在该目录启动命令行窗口 3 服务注册 命令行输入 nssm exe install XX或者n
  • 在CentOS7上安装RabbitMQ(RPM安装方式)

    首先需要安装erlang 参考 http fedoraproject org wiki EPEL FAQ howtouse rpm Uvh https download fedoraproject org pub epel epel rel
  • SQL命令笔记

    sql中的排序倒序 排序采用 order by 子句 order by 后面跟上排序字段 排序字段可以放多个 多个采用逗号间隔 order by默认采用升序 asc 如果存在 where 子句 那么 order by 必须放到where 语
  • 使用VS配置OCCI环境

    一 配置方法 1 准备好occi的两个配置文件sdk与basic 之后将VS内的设置环境为release x64 2 c c 常规 附加库包含目录 F programmsoftware occi instantclient sdk wind
  • IDEA插件之 时序图 -- Sequence Diagram

    安装插件 使用 在方法上右击选择 Sequence Diagram 设置参数 可在控制台内查看时序图结果
  • 【数据结构与算法】树状数组

    Fenwick Tree 树状数组 Binary Indexed Tree 又称 Fenwick Tree 是一种基于数组实现的数据结构 用于高效地动态维护前缀和 树状数组可以在 O log n
  • uni-app 高度自适应

    方法一已知固定高度 注意 scrollH 初始值不等大于最终显示的高度 如果封装组件 onReady onLoad 获取可视区域高度 减去固定高度 uni getSystemInfo success res gt this scrollH
  • nacos--基础--1.2--理论--概念

    nacos 基础 1 2 理论 概念 1 地域 物理的数据中心 资源创建成功后不能更换 2 可用区 同一地域内 电力和网络互相独立的物理区域 同一可用区内 实例的网络延迟较低 3 接入点 地域的某个服务的入口域名 4 命名空间 用于进行租户
  • 国外程序员的BASIC情结——我的编程生涯始于BASIC

    关于BASIC Edsger Dijkstra曾经说过这么一段话 那些已经学过BASIC的学生是不可教化的 再去教他们优秀的编程风格注定徒劳无功 他们已经脑残 再生无望 成不了优秀的程序员 BASIC是Beginner sAll purpo
  • 如何正确使用QTcpSocket的readyRead信号?

    一 问题描述 你之所以会来看我这篇文章 大概是遇到了一下几个问题 1 使用QTcpSocket时 readyread函数没有触发 或者触发了 但是触发次数不是自己想象的那样 2 readyread槽函数中 接收到的数据不对 我们先看一下Qt
  • hashmap为什么用红黑树_关于HashMap的实现,一篇文章带你彻底搞懂,再也不用担心被欺负

    推荐学习 刷透近200道数据结构与算法 成功加冕 题王 挤进梦中的字节 面试官杠上Spring是种什么体验 莫慌 送你一套面试 大纲 源码 前言 在介绍HashMap之前先了解一个别的东西 红黑树 这边提前声明下 发布文章的时候没太注意 有
  • vue当前(路由)页面跳转当前(路由)页面,刷新数据

    最近呢 总是踩坑 就是那种今天我写了代码 但是吧一直报错 然后明天再写就对了 咱也不知道是为啥 咱也不知道是咋回事 只能说萌新小白在线吃菜 言归正传 最近写了一个商品详情页 在当前商品详情页 还可以跳到另一个商品的详情页 也就是改变参数 当
  • kudu : 扩容报错 Bad status: Not found: Unable to initialize catalog manager

    文章目录 1 美图 2 背景 1 美图 2 背景 kudu 原本只有一个master 和一个 tableServer 现在我想扩容成3个master 3个tableServer 然后报错了 错误信息如下
  • C++递推经典案例No.1——青蛙跳台问题

    一只青蛙一次可以跳上1级台阶 也可以跳上2级台阶 求该青蛙跳上一个 n 级的台阶总共有多少种跳法 这是一个经典的递归 动态规划的例题 代码部分并不难 关键是要理清思路 由于每次可以跳1个或者两个 所以跳到当前台阶的来源只有两种 下一个和下两