C++实现汉诺塔算法经典实例
2014-07-24 11:46
1426 查看
本文所述为汉诺塔算法的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; }
您可能感兴趣的文章:
相关文章推荐
- 经典算法---8皇后问题的C++实现
- 经典算法与数据结构的c++实现——直接选择排序
- C/C++经典算法精华整理(3)-实现栈的数据结构
- STL + c++ + 模板 + 重要思维 + 基础算法+ 经典算法 + 经典实例 + 编程总结+ 心得+ 入门必会 + 知识点汇总。
- 经典算法学习————快速排序算法的c++实现
- 经典算法与数据结构的c++实现——插入排序
- C语言经典算法(十)——递归实现汉诺塔
- 面绘制经典算法:MarchingCube实现(C++ OpenGl代码篇)
- c++实现加密和解密算法以及JNI技术的应用实例
- 经典算法与数据结构的c++实现——shell排序算法
- 聚类方法:DBSCAN算法研究(3)--C++代码实现及与matlab实例结果比较
- 【算法笔记】使用栈实现汉诺塔(Hanoi)经典算法
- STL + c++ + 模板 + 重要思维 + 基础算法+ 经典算法 + 经典实例 + 编程总结+ 心得+ 入门必会 + 知识点汇总。+string +dfs +bfs等重要算法
- C++ 实现汉诺塔的实例详解
- 经典算法与数据结构的c++实现——带头结点的单链表
- 经典算法与数据结构的c++实现——冒泡排序
- C++实现迷宫算法实例解析
- python实现经典算法(1):汉诺塔
- 经典谱估计算法(相关函数法,周期图就法,平滑周期图法)的C++实现
- 较高人工智能的人机博弈程序实现(多个算法结合)含C++源码