Tower of Hanoi by C++
来源:互联网 发布:网络写手怎样才有收入 编辑:程序博客网 时间:2024/05/17 05:02
好久没写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;
}
0 0
- Tower of Hanoi by C++
- THE TOWER OF HANOI
- Tower of Hanoi
- Tower of Hanoi
- Tower of Hanoi
- Tower of Hanoi问题
- codeforces Tower of Hanoi
- Tower of Hanoi
- 汉诺塔 Tower of Hanoi
- THE TOWER OF HANOI
- pku 3601 Tower of Hanoi
- 汉诺塔(the Tower of Hanoi )
- 1.1 The Tower of Hanoi
- poj 3601 Tower of Hanoi
- POJ 3601:Tower of Hanoi
- 1-6 Tower of Hanoi
- POJ 3601 Tower of Hanoi
- Tower of Hanoi(汉诺塔)
- Scroller的应用--滑屏实现
- 获取未知长度单链表的中间节点
- struts2必须的jar包
- HDU 2224 The shortest path(双调欧几里得旅行商问题)
- 程序员必备
- Tower of Hanoi by C++
- hdu 2159 FATE 二维背包
- spring+cxf+webservice 部署到weblogic注意事项
- Cocos2d-x中的词典类CCDictionary深入分析
- sublime text 3 安装使用及激活
- Beginning Perl for Bioinformatics 总结提升
- PHP中new static()与new self()的区别
- 学习Javascript闭包(Closure)
- 51单片机各引脚功能介绍,到时候对着这个写代码就行了