C++实现汉诺塔算法
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++实现汉诺塔算法相关推荐
- 【汉诺塔-算法必备】
文章目录 汉诺塔~算法 代码如下: 一天一点python小学习 `小知识点`: 上一页:[PTA~基础编程题集](https://blog.csdn.net/m0_66318554/article/d ...
- 汉诺塔算法python_python实现汉诺塔算法
题目: 汉诺塔给出最优解,如果对汉诺塔的定义有不了解,请翻看数据结构教材. 除了最基本的之外,还有一题,给定一个数组,arr=[2,3,1,2,3],其含义是这是一个有5个圆盘的汉诺塔,每一个数字代表 ...
- 算法自我分析——汉诺塔算法
汉诺塔算法 汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具.大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘.大梵天命令婆罗门把圆盘从下面开始按大小 ...
- python汉诺塔算法解析_基于Python的汉诺塔算法
首先贴出Python编写的汉诺塔算法的代码: def hanoti(n,x1,x2,x3): if(n == 1): print('move:',x1,'-->',x3) return hano ...
- python汉诺塔算法解析,python实现的汉诺塔算法示例
本文实例讲述了python实现的汉诺塔算法.分享给大家供大家参考,具体如下: 规则: 圆盘从下面开始按大小顺序重新摆放在另一根柱子上.并且规定 在小圆盘上不能放大圆盘 在三根柱子之间一次只能移动一个圆 ...
- python实现汉诺塔递归经典算法_Python递归实现汉诺塔算法示例
本文实例讲述了Python递归实现汉诺塔算法.分享给大家供大家参考,具体如下: 最近面试题,面试官让我5分钟实现汉诺塔算法(已然忘记汉诺塔是啥). 痛定思痛,回来查了一下汉诺塔的题目和算法.题干与实现 ...
- 手撕“汉诺塔算法”之详细图解
hello,你好呀,我是灰小猿,一个超会写bug的程序猿, 今天和大家分享一个递归经典算法案例---"汉诺塔". 汉诺塔问题回顾 汉诺塔(Tower of Hanoi)源于印度传说 ...
- 汉诺塔算法 java_汉诺塔算法java实现详解
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public ...
- 汉诺塔算法 java_java实现汉诺塔算法
package com.ywx.count; import java.util.Scanner; /** * @author Vashon * date:20150410 * * 题目:汉诺塔算法(本 ...
最新文章
- 完美解决网站PNG图标在IE6下的透明显示
- php-fpm定义成集群资源时报错解决方法
- DNS反射放大攻击分析——DNS反射放大攻击主要是利用DNS回复包比请求包大的特点,放大流量,伪造请求包的源IP地址为受害者IP,将应答包的流量引入受害的服务器...
- flink DataStream API使用及原理
- 微软VDI动手实验之应用模型及部署攻略
- Linux上安装JDK+Tomcat
- 写了个序列化反序列化助手
- mybatis错误之配置文件属性配置问题
- nn.dropout()的用法,随机失活
- 679. 24 点游戏
- 微信支付curl: (60) SSL certificate problem: unable to get local issuer certificate 解决方法
- [ Python - 6 ] 正则表达式实现计算器功能
- SpringApplication#run⽅法第5步,打印banner(四)
- linux设备驱动模型架构分析 一
- App 分辨率相关 - iOS
- java servlet继承_servlet继承什么类
- 相控阵天线(十一):阵列天线有源驻波分析
- 我愿称之为:最强播放器!
- colormap保存 matlab_matlab中colormap用法
- SQL 查询的分布式执行与调度