C++实现汉诺塔算法案例

汉诺塔的规则:

注:图片素材–>路飞学城

算法过程原理:


根据上图,利用递归实现汉诺塔算法。

算法实现:

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <string>
using namespace std;void move(int n, string a, string b, string c)  //n是当前函数里圆盘的个数,a,b,c代表三个圆盘的位置
{if (n == 1)  // 当圆盘数为1时,直接从a移动到b{cout << a << "->" << c << endl;}else{move(n - 1, a, c, b);  // 把上面的n-1个圆盘,从a经过c移动到bcout << a << "->" << c << endl;  // 把第n个圆盘从a移动到cmove(n - 1, b, a, c);  // 把那n-1块个圆盘,从b经过a移动到c}
}void test01()
{int n = 3;move(n, "A", "B", "C");
}int main()
{test01();system("pause");return 0;
}

当圆盘数为3时,程序运行的结果为:
A->C
A->B
C->B
A->C
B->A
B->C
A->C

总结:巧妙利用递归调用自身的特点

C++实现汉诺塔算法相关推荐

  1. 【汉诺塔-算法必备】

    文章目录 汉诺塔~算法 代码如下: 一天一点python小学习 `小知识点`: 上一页:[PTA~基础编程题集](https://blog.csdn.net/m0_66318554/article/d ...

  2. 汉诺塔算法python_python实现汉诺塔算法

    题目: 汉诺塔给出最优解,如果对汉诺塔的定义有不了解,请翻看数据结构教材. 除了最基本的之外,还有一题,给定一个数组,arr=[2,3,1,2,3],其含义是这是一个有5个圆盘的汉诺塔,每一个数字代表 ...

  3. 算法自我分析——汉诺塔算法

    汉诺塔算法 汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具.大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘.大梵天命令婆罗门把圆盘从下面开始按大小 ...

  4. python汉诺塔算法解析_基于Python的汉诺塔算法

    首先贴出Python编写的汉诺塔算法的代码: def hanoti(n,x1,x2,x3): if(n == 1): print('move:',x1,'-->',x3) return hano ...

  5. python汉诺塔算法解析,python实现的汉诺塔算法示例

    本文实例讲述了python实现的汉诺塔算法.分享给大家供大家参考,具体如下: 规则: 圆盘从下面开始按大小顺序重新摆放在另一根柱子上.并且规定 在小圆盘上不能放大圆盘 在三根柱子之间一次只能移动一个圆 ...

  6. python实现汉诺塔递归经典算法_Python递归实现汉诺塔算法示例

    本文实例讲述了Python递归实现汉诺塔算法.分享给大家供大家参考,具体如下: 最近面试题,面试官让我5分钟实现汉诺塔算法(已然忘记汉诺塔是啥). 痛定思痛,回来查了一下汉诺塔的题目和算法.题干与实现 ...

  7. 手撕“汉诺塔算法”之详细图解

    hello,你好呀,我是灰小猿,一个超会写bug的程序猿, 今天和大家分享一个递归经典算法案例---"汉诺塔". 汉诺塔问题回顾 汉诺塔(Tower of Hanoi)源于印度传说 ...

  8. 汉诺塔算法 java_汉诺塔算法java实现详解

    import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public ...

  9. 汉诺塔算法 java_java实现汉诺塔算法

    package com.ywx.count; import java.util.Scanner; /** * @author Vashon * date:20150410 * * 题目:汉诺塔算法(本 ...

最新文章

  1. 完美解决网站PNG图标在IE6下的透明显示
  2. php-fpm定义成集群资源时报错解决方法
  3. DNS反射放大攻击分析——DNS反射放大攻击主要是利用DNS回复包比请求包大的特点,放大流量,伪造请求包的源IP地址为受害者IP,将应答包的流量引入受害的服务器...
  4. flink DataStream API使用及原理
  5. 微软VDI动手实验之应用模型及部署攻略
  6. Linux上安装JDK+Tomcat
  7. 写了个序列化反序列化助手
  8. mybatis错误之配置文件属性配置问题
  9. nn.dropout()的用法,随机失活
  10. 679. 24 点游戏
  11. 微信支付curl: (60) SSL certificate problem: unable to get local issuer certificate 解决方法
  12. [ Python - 6 ] 正则表达式实现计算器功能
  13. SpringApplication#run⽅法第5步,打印banner(四)
  14. linux设备驱动模型架构分析 一
  15. App 分辨率相关 - iOS
  16. java servlet继承_servlet继承什么类
  17. 相控阵天线(十一):阵列天线有源驻波分析
  18. 我愿称之为:最强播放器!
  19. colormap保存 matlab_matlab中colormap用法
  20. SQL 查询的分布式执行与调度

热门文章

  1. 为公益伸出援手,自建NTP 服务器池
  2. OpenAI 发布GPT-4——全网抢先体验
  3. 数仓ADS层指标计算案例分享
  4. 【Centos】centos挂载硬盘方法 及挂载卸载过程出现错误
  5. 矮人要塞 dwarf fortress
  6. minecraft1.16种子JAVA版_我的世界Java1.16.1版本水下要塞种子分享
  7. string中的npos
  8. Docker是什么?它的优点与作用是什么?我们为什么使用docker?
  9. (一)初识 SQL Sever 2019
  10. 成都软件从业人员达20万人