Tower of Hanoi by C++
2015-06-14 23:59
246 查看
好久没写C++程序了,突然想玩一下Tower of Hanoi。
上网找了一下相关的资料,汉诺塔的递归思想如下:
定义塔层数为n,三根支柱分别为A,B,C
把n从A移动到C上
当n=1时,直接A-->C
当n>1时,分三步:
n-1从A-->B
n 从A-->C
n-1从B-->C
有点像分治。以下是代码
#include <iostream>
using namespace std;
void Hanoi(int n, char s, char d, char r)
{
if (n == 1)
{
cout << s<< "-->" << d << endl;
}
else
{
Hanoi(n - 1, s, r, d);
cout << s << "-->" << d<< endl;
Hanoi(n - 1, r, d, s);
}
}
int main()
{
int n = 3;
char A = 'A';
char B = 'B';
char C = 'C';
Hanoi(n, A, C, B);
return 1;
}
上网找了一下相关的资料,汉诺塔的递归思想如下:
定义塔层数为n,三根支柱分别为A,B,C
把n从A移动到C上
当n=1时,直接A-->C
当n>1时,分三步:
n-1从A-->B
n 从A-->C
n-1从B-->C
有点像分治。以下是代码
#include <iostream>
using namespace std;
void Hanoi(int n, char s, char d, char r)
{
if (n == 1)
{
cout << s<< "-->" << d << endl;
}
else
{
Hanoi(n - 1, s, r, d);
cout << s << "-->" << d<< endl;
Hanoi(n - 1, r, d, s);
}
}
int main()
{
int n = 3;
char A = 'A';
char B = 'B';
char C = 'C';
Hanoi(n, A, C, B);
return 1;
}
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- C++联合体转换成C#结构的实现方法
- C++编写简单的打靶游戏
- C++变位词问题分析
- C/C++数据对齐详细解析
- C++基于栈实现铁轨问题
- C++中引用的使用总结
- C++中调用Lua函数实例
- Lua和C++的通信流程代码实例
- C与C++之间相互调用实例方法讲解
- C++中拷贝构造函数的应用详解
- C++中引用(&)的用法与应用实例分析
- C++使用CriticalSection实现线程同步实例
- C++智能指针实例详解
- 解析C++ 浮点数的格式化输出