递归问题------汉诺塔

2023-11-13

递归问题实际上是入栈出栈的一个过程,但有时候也会比较难理解,虽然用起来是比较方便的。

 1 #include<iostream>
 2 #include<string>
 3 using namespace std;
 4 #define SECONDS_PER_YEAR 365*24*3600
 5 void move(int n, char a, char b)
 6 {
 7     cout<<n<<":" <<a<<"--->"<<b<<endl;
 8 
 9 }
10 
11 void hanio(int n, char a, char b, char c)
12 {
13     if(n==1)
14         move(1,a,c);
15     else
16     {
17         hanio(n-1,a,c,b);
18         move(n,a,c);
19         hanio(n-1,b,a,c);
20     }
21 }
22 int main()
23 {
24     int num;
25     cin>>num;
26     hanio(num,'A','B','C');
27     system("pause");
28     return 0;
29 }

解释一下上图,

n=3时,会把h(2,1,3,2),move(1,3),h(2,2,1,3)压入栈中

n=2时,会把h(2,1,3,2)弹出,压入h(1,1,2,3),move(1,2),h(1,3,1,2)压入栈中,依次这样。。。

 

转载于:https://www.cnblogs.com/sjlove/p/3163331.html

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

递归问题------汉诺塔 的相关文章

  • 算法导论 第六章 堆排序 习题6.5-8 k路合并排序

    请给出一个时间为O nlgk 用来将k个已排序链表合并为一个排序链表的算法 此处n为所有输入链表中元素的总数 提示 用一个最小堆来做k路合并 思路 利用有k个元素的最小堆有lgk的复杂度 所以堆的元素组成要每个链表的一个元素组成 具体步骤
  • 关于Flask框架中启动Scrapy爬虫框架时的几种问题的解决

    最近开发的爬虫调度系统是由Flask框架提供接口 在Flask中启动Scrapy项目 开发期间遇到了几个问题 网上找找 自己也琢磨了好久 终于顺利解决 问题如下 一 Scrapy crawl指令找不到 问题描述 先看一下我的项目结构 如下
  • javaWeb_09——HTTP响应、Response(输出,服务器路径,重定向,动态验证码,下载,不同浏览器的解码类)

    目录 今日内容 一 HTTP协议 1 请求消息 客户端发送给服务器端的数据 2 响应消息 服务器端发送给客户端的数据 二 Response对象 功能 设置响应消息 重定向 1 转发 重定向 特点 2 路径写法 3 服务器输出字符数据到浏览器
  • tensorflow -- tf.gfile

    tf gfile他是一个操作文件的模块 他吧os glob shutil 这几个对文件操作的功能整合到了一起去 Copy 从一个目录的文件拷贝到了另一个目录 同shutil copy DeleteRecursively 以递归方式删除dir
  • 一文读懂如何快速查询中科院JCR分区和汤森路透JCR分区

    作为一个学术渣 突然心血来潮 想搞明白困扰很久的中科院分区和汤森路透分区到底是咋回事 曾经听人忽悠某某杂志几区 IF多少 说的云里雾里 感觉自己白活了这么多年 你是不是也有这种感觉 要是有那就对了 不用担心 看完这篇文章 保证让你彻底摆脱搞
  • java中求时间间隔(精确到分钟)

    long nowTime System currentTimeMillis System out print 现在的时间是 nowTime SimpleDateFormat dateformat new SimpleDateFormat y
  • Maven项目中右边的maven Projects中子项目出现灰色

    如图所示 Maven项目中右方查看的Maven Projects中子项目出现灰色 原因 忽略了maven模块 解决方法 在idea中maven的setting中找到ignored files 看右边的面板中是否将变灰的maven模块忽略了
  • SD卡、TF卡读写速率测试

    请注意 可以在未经过博主同意下转载 但必须注明出处 谢谢 1 运行HDBENCH软件 点击确定 2 弹出如下图所示界面 配置选项并测试 选择待测TF卡 Removable可移动存储设备 图示所插入的TF卡是 I 盘 请根据实际情况选择 选择
  • Qt的D和Q指针

    Qt的D指针和Q指针 实际上就是一个类的成员指针变量 改变量指向另一个Private类对象 这个Private类对象中包含了一系列的成员和函数 这样做的目的 1 可以对外隐藏数据内容 2 防止改变类的数据模型 从而做到二进制兼容 Q DEC
  • 微信分享签名无效php_【求助】微信分享朋友圈失效

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 document ready function var islogin islogin val var area id sessionStorage getItem list area id v
  • 基于径向基神经网络的数据回归预测及matlab实现

    基于径向基神经网络的数据回归预测及matlab实现 径向基神经网络 Radial Basis Function Neural Network RBFNN 是一种常用的人工神经网络模型 其结构简单 学习速度快 精度高 并且具有良好的适应性 泛
  • Linux 离线升级 pip

    首先在一台有网的地方下载 pip3 download pip i http mirrors aliyun com pypi simple trusted host mirrors aliyun com 然后将这个pip xxx none a
  • 用JS获取小数点后两位数字方法

    1 最笨的办法 1 function get 2 3 var s 22 127456 4 var str s substring 0 s indexOf 3 5 alert str 6 2 正则表达式效果不错 1
  • win7下安装rhel7(redhat enterprise Linux 7) 双系统

    首先需要的材料是 win7 rhel7 ISO镜像 和 EasyBCD 然后将磁盘格出3个分区 卷标分别是 I RHEL7 J GEN 和K SWAP 要注意格出来的三个分区都是FAT32格式的 NTFS Linux不认 我分的大小是I 1
  • 如何使用万用表测量三级管的阻值

    1 三极管是含有两个PN结的半导体器件 根据两个PN结连接方式不同 可以分为NPN型和PNP型两种不同导电类型的三极管 测试三极管要使用万用电表的欧姆挡 并选择R 100或R 1k挡位 假定我们并不知道被测三极管是NPN型还是PNP型 也分
  • 你现在需要知道的 C# 10 的 5+1 特性

    距离 C 10 正式发布仅剩两个月 微软开启了关于其 C 语言第十版的新特性和功能的讨论 这些增强功能是在C 10 0 Preview 7 中宣布的 微软将在下一版 C 10 中实现的功能和改进如下 记录类型可以密封 ToString 现在
  • ES底层原理知识(无代码篇)

    版本更新知识 ES 删除映射类型 爱码网 1 Index索引 包含了一堆有相似数据结构的文档数据 一个索引包含很多document 一个索引就代表一类相似或者相同的document 索引简单来说就相对于关系型数据库的库 2 Type类型 每
  • 小程序-picker组件的使用、数据回显

    picker组件的使用 通过点击picker选择器 触发bingchange绑定的事件函数 在picker组件自定义data i I 在事件函数中通过e target dataset i获取到data i里的值 这里的i代表数组中对象的下标
  • 09_Uboot启动流程_1

    目录 链接脚本u boot lds详解 U Boot启动流程详解 reset函数源码详解 lowlevel init函数详解 s init函数详解 链接脚本u boot lds详解 要分析uboot的启动流程 首先要找到 入口 找到第一行程
  • ABAP 基础语法

    表的声明的格式为 tables 表名 变量定义 其中 v1是变量名 l 是变量的长度 t是数据类型 d是小数位 xxx 是缺省值 data v1 l type t decimals d value xxx 定义了一个10位长度3位小数缺省值

随机推荐

  • 多年收集的一些稀有软件1

    QQ 365543212 PTC系列产品 PTC Creo 5 0 1 0 HelpCenter Full Multilanguage Win64 2DVD PTC Creo 4 0 M050 HelpCenter Full Multila
  • mysql 锁级别说明 一

    1 锁的类型 MySQL各存储引擎使用了三种类型 级别 的锁定机制 表级锁定 行级锁定和页级锁定 锁级别 存储引擎 表级别 table level MyISAM MEMORY CSV 行级别 row level inndb 页级别 page
  • Docker Compose初体验(Centos7中docker-compose安装MySQL+Redis)

    一 docker compose介绍 官网介绍 Compose 是用于定义和运行多容器 Docker 应用程序的工具 通过 Compose 您可以使用 YML 文件来配置应用程序需要的所有服务 然后 使用一个命令 就可以从 YML 文件配置
  • 为什么说 Serverless 是云的未来?

    简介 对于大多数应用而言 借助 Serverless 服务 开发者可以将绝大多数精力投入在业务逻辑的开发整合上 大大缩短开发周期 降低运维成本 有人说 Serverless 正在改变未来软件开发的模式和流程 它就是云计算的未来 技术领域真正
  • Vue 生命周期和数据共享

    Vue 生命周期和数据共享 1 组件的生命周期 1 1 生命周期与生命周期函数 1 2 组件生命周期函数的分类 1 3 生命周期图示以及详解 2 组件之间的数据共享 2 1 组件之间的关系 2 2 父向子传值 2 3 子向父传值 2 4 兄
  • 降低指定进程的CPU占用率(适合游戏多开)

    应用场景举例 推荐BES软件 应用场景举例 游戏多开 比如 天书世界 网页游戏 单开占用CPU30 左右 最小化能够降低到10 以下 如果多开 那么CPU就是叠加累计 非常占用CPU资源 而且挂机严重影响CPU温度 1 采用最小化窗口的方式
  • CV综述目标检测整理---目录

    CV综述目标检测整理 目录 Object detection yolo系列 yolov3 从yolo入门目标检测 链接 YOLOV3论文解读与应用 https blog csdn net weixin 42466194 article de
  • codeforces 733D--Kostya the Sculptor

    Description Kostya is a genial sculptor he has an idea to carve a marble sculpture in the shape of a sphere Kostya has a
  • 威胁情报

    2020 05 01 引言 之前总是看到各种威胁情报 各种乱七八糟的定义 各种什么高级的词汇 什么上下文 什么攻击 统统看不懂 但是你去搜索威胁情报 国内几家比较知名的 或者说国外的 发现他们的网站提供的服务 就是IP 域名 文件检测这些内
  • MyEclipse报错:Multiple markers at this line

    Multiple markers at this line The type java io ObjectInputStream cannot be resolved It is indire 出错原因 jdk版本太高 不兼容而引起的问题
  • 大数据好不好学,有这几大步骤你就懂了

    很多初学者在萌生向大数据方向发展的想法之后 不免产生一些疑问 应该怎样入门 应该学习哪些技术 学习路线又是什么 所有萌生入行的想法与想要学习Java的同学的初衷是一样的 岗位非常火 就业薪资比较高 前景非常可观 基本都是这个原因而向往大数据
  • 安卓逆向入门指南:修改与重打包应用

    安卓逆向入门指南 修改与重打包应用 概述 介绍修改与重打包应用的目的和应用场景 强调合法性和道德准则 在逆向工程过程中需要遵守相关法律法规 理解应用结构与资源 APK文件结构 解释APK文件的基本结构 包括AndroidManifest x
  • Spring Boot2.x 整合lettuce redis 和 redisson

    前言 springboot2之前redis的连接池为jedis 2 0以后redis的连接池改为了lettuce lettuce能够支持redis4 需要java8及以上 lettuce是基于netty实现的与redis进行同步和异步的通信
  • 基于RFID技术的预制件管理系统的开发

    1 简介 随着计算机 通讯技术和消费电子产品 正如人们通常所知的3C数码产品 的到来 已经在人们生活的各个领域带来了改变 通过这些3C技术 在将来 信息的传播和获取将变得更加便利 电子化管理技术正在向移动管理概念转变 射频识别系统 RFID
  • 微信支付官方SDK PHP版本接入记录

    1 下载证书 下载商家支付证书 这里忽略步骤 下载的证书我们放在E wwwroot certs wx 目录下 一共有4个文件 apiclient cert p12 apiclient cert pem apiclient key pem 证
  • [linux-022]ubuntu20.04用virtualbox安装64位win10彻底解决“directory ezboot not found”问题

    1 这问题是由于win10的iso文件超过4g导致的 2 解决关键 需要一个小尺寸的能用winpe启动的iso镜像 这个镜像有磁盘分区工具和ghost 3 在virtualbox创建win10 64虚拟机 硬盘50g 4 给这个虚拟机挂上两
  • PHP 之session cookie

    cookie和session有什么用 常见的用法 比如在有些网站下载东西需要会员先登陆 http协议本身是无状态的 无法得知顾客是否已经登陆 怎么办呢 cookie和session就可以知道 再比如网上购物 用户身份认证 程序状态记录 购物
  • shell经典面试题根据文件创建用户名及密码(亲测)

    转载来源 shell经典面试题根据文件创建用户名及密码 https www jianshu com p eeb455eef7ca 01 前言 shell脚本已经学习了很长一段时间了 现在时不时来看一些经典的面试题 复习一些常用知识点 温故知
  • IDEA必备的10款插件

    目录 1 Vuesion Theme 2 lombok 3 File Expander 4 GitToolBox 5 Maven Helper 6 Translation 7 arthas idea 8 Free Mybatis plugi
  • 递归问题------汉诺塔

    递归问题实际上是入栈出栈的一个过程 但有时候也会比较难理解 虽然用起来是比较方便的 1 include