#include <iostream>
using namespace std;
void print(char A, char C)
{
cout << A << "-->" << C << endl;
}
void hanoi(int n, char A, char B, char C)
{
if(n == 1)
{
print(A, C);
}
else
{
hanoi(n - 1, A, C, B);
print(A, C);
hanoi(n - 1, B, A, C);
}
}
int main()
{
int n;
cout << "Please input the number of plates in pile A:";
cin >> n;
hanoi(n, 'A', 'B', 'C');
return 0;
}
// Output:
/*
Please input the number of plates in pile A:6
A-->B
A-->C
B-->C
A-->B
C-->A
C-->B
A-->B
A-->C
B-->C
B-->A
C-->A
B-->C
A-->B
A-->C
B-->C
A-->B
C-->A
C-->B
A-->B
C-->A
B-->C
B-->A
C-->A
C-->B
A-->B
A-->C
B-->C
A-->B
C-->A
C-->B
A-->B
A-->C
B-->C
B-->A
C-->A
B-->C
A-->B
A-->C
B-->C
B-->A
C-->A
C-->B
A-->B
C-->A
B-->C
B-->A
C-->A
B-->C
A-->B
A-->C
B-->C
A-->B
C-->A
C-->B
A-->B
A-->C
B-->C
B-->A
C-->A
B-->C
A-->B
A-->C
B-->C
*/
分享到:
相关推荐
用C++实现汉诺塔的递归算法,定义了类和方法。
c++递归实现汉诺塔问题。 算法分析与设计 例题的源码实现。跟书上的一样。
动态演示实现了多菜单界面,键盘输入检测,演示模式与游戏模式切换,算法与移动步骤呈现,并且有悦耳的背景音乐。
采用C++ Buidler开发环境,C++ 语言,结合线程技术,将经典的汉诺塔算法的执行过程动态的演示出来,对于用户理解汉诺塔算法产生巨大的帮助
汉诺塔算法 C++ 有截图 结果如下: 请输入盘子数:4 各步骤如下: A-->B A-->C B-->C A-->B C-->A C-->B A-->B A-->C B-->C B-->A C-->A B-->C A-->B A-->C B-->C 总步骤数为:15 Press any key to continue
网上看来的,比较详细。包含了递归以及不用递归的代码。 C和C++版的都有。
//程序实现了mystack栈的声明和定义,并且通过函数 //move_stacks的递归调用和函数move_a_ring实现汉 //诺塔的算法,并用函数print_stacks和pr_chars实现汉诺 //塔的动画效果
汉诺塔问题C/C++;解决汉诺塔问题的算法;递归
汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在...
双色汉诺塔是由之前所介绍过的汉诺塔规则衍生而来。 盘子的颜色有两种
算法分析设计中三柱汉诺塔算法的拓展,四柱汉诺塔的设计算法代码
简单的非递归汉诺塔实现,C++初学者交流用。使用的经典的两部算法。
用递归 解决了N个盘子的汉诺塔问题 适合新手
算法分析与设计实验一,使用递归算法实现汉诺塔问题。 使用move() 函数以及hanoi()函数具体实现
本文实例讲述了C++基于递归算法解决汉诺塔问题与树的遍历功能。分享给大家供大家参考,具体如下: 递归是把问题转化为规模缩小的同类问题,然后迭代调用函数(或过程)求得问题的解。递归函数就是直接或间接调用自身...
对于汉诺塔问题的C++面向对象的实现,主要算法从网上找的,转成用面向对象的形式
本程序利用递归算法较好地求解了汉诺塔问题
汉诺塔游戏的解法 用C++实现的代码 可以支持任意多个盘子
四柱汉诺塔的c++实现,关键在于最短路径的计算
汉诺塔的C++实现,练习递归算法的典型例子