汉诺塔问题:64个盘子,3个基座A、B、C,编程打印处移动过程
2016-03-30 15:59
519 查看
思路:利用递归分三步走
1. 将n个盘子从a移到b,c作为辅助
2. 将第n个盘子从a移到b
3. 将c中的n-1个盘子移到b,a作为辅助
1. 将n个盘子从a移到b,c作为辅助
2. 将第n个盘子从a移到b
3. 将c中的n-1个盘子移到b,a作为辅助
#include <iostream> using namespace std; //将n个盘子从a移到b,c作为辅助 void hanoi(int n, char a, char b, char c) { if(n>0) { //将n-1个盘子从a移到c,b作为辅助 hanoi(n-1,a,c,b); //将第n个盘子从a移到b cout<<"Move dish "<<n<<" from pile "<<a<<" to "<<b<<endl; //将c中的n-1个盘子移到b,a作为辅助 hanoi(n-1,c,b,a); } } int main() { hanoi(64,'A','B','C'); cout<<endl; return 0; }
相关文章推荐
- 如何在github中创建演示demo
- 10张思维导图带你学习JavaScript
- The Struts dispatcher cannot be found. This is usually caused by using Struts tags without the assoc
- 验证码的获取和注册功能的代码实现
- 如何快速反编译JAVA的jar包或war包
- 1000+节点:kubernetes 1.2性能和可扩展性更新介绍
- Socket编程入门:一对一交互
- pyqt中信号,槽的使用方法
- spring+hibernate+jpa+Druid的配置文件,spring整合Druid
- Java线程安全
- Django REST 异常处理
- java多线程-使用ReadWriteLock同步数据访问
- 如何在.Net的C#中制作DLL文件
- 整型数据在内存中如何存储?
- python备忘录
- Java基础------知识点整理(九)-----异常
- php 中关于AES 的使用 ,被友盟搞死了
- eclipse 设置 build 的时候过滤 js
- yaml在python上的应用
- spring+dubbo整合