汉诺塔问题
来源:互联网 发布:mac windows 7 iso 编辑:程序博客网 时间:2024/05/21 10:35
汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。
步骤:
1. 先将前63个盘子利用Z轴移动到Y轴上,确保大盘子在小盘子下面
2. 将最底下的第64个盘子移动到Z轴上
3. 将Y轴上的63个盘子,利用X轴移动到Z轴上面
/********************************************************** ** 作者:PZL ** 时间:2015/7/9 ** 描述:汉诺塔问题 ** Version:VS2013***********************************************************/#include <iostream>using namespace std;// n 汉诺塔问题的盘数// x y z 分别是三根柱子,要将 x 上面的盘子利用 y 移动到 z 上面void move(int n,char x,char y,char z){if (n == 1)cout << x << " ---> " << z << endl;else{move(n-1,x,z,y);//将n-1个盘子从x轴借助z轴移动到y上面cout << x << " ---> " << z << endl; //将最下面的第n个盘子从x轴移动到z轴上move(n-1,y,x,z);//将n-1个盘子从y轴借助x轴移动到z上面}}int main(){int n;cout << "请输入汉诺塔盘数:" << endl;cin >> n;cout << "移动结果如下:" << endl;move(n,'X','Y','Z');system("pause");return 0;}
0 0
- 汉诺塔问题 背包问题
- 递归问题,汉诺塔问题
- 汉诺塔问题
- 汉诺塔问题
- 汉诺塔问题
- 汉诺塔问题
- 汉诺塔问题
- 汉诺塔问题
- 汉诺塔问题
- 汉诺塔问题
- 汉诺塔问题
- 汉诺塔问题
- 汉诺塔问题.
- 汉诺塔问题
- 汉诺塔问题
- 汉诺塔问题
- 汉诺塔问题
- 汉诺塔问题
- C++默认构造函数
- Java接收串口数据
- 进制转换
- Nutch 2.4 Mechanism Notes Part 1 - Inject
- android基础学习之正则表达式词典
- 汉诺塔问题
- KeyboardView 修改按键提示框
- junit test
- 安卓实现序列化之Parcelable接口
- Android之找回打包key密码的方法
- ORA-15032,ORA-15031,ORA-15014
- android Immutable bitmap passed to Canvas constructor异常
- 【使用技巧】【图像编辑和处理】将多幅图片放到一块方便对比
- 语言的语音,音素,元音,辅音,音节