• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > C++实现汉诺塔算法经典实例

C++实现汉诺塔算法经典实例

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了汉诺塔递归算法c++,汉诺塔c++,c++汉诺塔问题,汉诺塔c++代码,汉诺塔递归算法等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文所述为汉诺塔算法的C++代码的经典实现方法。

汉诺塔问题描述:3个柱为a、b、c,圆盘最初在a柱,借助b柱移到c柱。需要你指定圆盘数。

具体实现代码如下:

#include <iostream>
using namespace std;
int times = 0; //全局变量,搬动次数
//第n个圆盘从x柱搬到z柱
void move(int n, char x, char z)
{
  cout << "第" << ++times << "步: 将" << n << "号盘从" << x << "移到" << z << endl;
}
//将x柱上按直径自上而下由小到大编号为1至n的n个圆盘按规则搬到z柱上。y用作辅助柱
void hanoi(int n, char x, char y, char z)
{
 if (n == 1)
 move(1, x, z); //将编号为1的圆盘从x移到z
 else {
 hanoi(n - 1, x, z, y); //将x上编号为1至n-1的圆盘移到y,z作辅助柱
 move(n, x, z);     //将编号为n的圆盘从x移到z
 hanoi(n - 1, y, x, z); //将y上编号为1至n-1的圆盘移到z,x作辅助柱
 }
}
int main()
{
 int n;
 cout << "3个柱为a、b、c,圆盘最初在a柱,借助b柱移到c柱。请输入圆盘数:";
 cin >> n;
 hanoi(n, 'a', 'b', 'c');
 system("pause");
 return 0;
}
</div> </div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C++实现汉诺塔算法经典实例

相关文章

  • 2017-05-28C++实现在文本中找出某个单词的位置信息
  • 2017-05-28C语言实现程序开机自启动
  • 2017-05-28深入分析:C++模板究竟会使代码膨胀吗
  • 2017-05-28C/C++可变参数的使用
  • 2017-05-28C语言 实现归并排序算法
  • 2017-05-28C++ 中重载和运算符重载加号实现矩阵相加实例代码
  • 2017-05-28关于C语言指针赋值的问题详解
  • 2017-05-28C++对象的动态建立与释放详解
  • 2017-05-28C++ boost::asio编程-同步TCP详解及实例代码
  • 2017-05-28解析C语言中如何正确使用const

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • MoveWindow() SetWindowPos()的区别于联系
    • 有关C++中类类型转换操作符总结(必看篇)
    • 详解C++编程中的嵌套类的声明与其中的函数使用
    • Cocos2d-x UI开发之文本类使用实例
    • C++链表倒序实现方法
    • C++中点操作符和箭头操作符的使用详解
    • C/C++字符串查找函数全面了解
    • 清除3389远程登录日志
    • C++的静态联编和动态联编
    • C语言main函数的参数及其返回值详细解析

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有