汉诺塔问题(递归与分治)
2013-03-27 20:06
176 查看
#include<iostream> using namespace std; ////////////////////////////////// void move(char a,char b,int n) { printf("将%d号盘子从%c移动到%c上\n",n,a,b); } ////////////////////////////////// void hanoi(int n,char a,char b,char c) { if(n <= 0) return; hanoi(n-1,a,c,b); move(a,b,n); hanoi(n-1,c,b,a); } ///////////////////////////////// void main() { hanoi(5,'a','b','c'); } /* 将1号盘子从a移动到b上 将2号盘子从a移动到c上 将1号盘子从b移动到c上 将3号盘子从a移动到b上 将1号盘子从c移动到a上 将2号盘子从c移动到b上 将1号盘子从a移动到b上 将4号盘子从a移动到c上 将1号盘子从b移动到c上 将2号盘子从b移动到a上 将1号盘子从c移动到a上 将3号盘子从b移动到c上 将1号盘子从a移动到b上 将2号盘子从a移动到c上 将1号盘子从b移动到c上 将5号盘子从a移动到b上 将1号盘子从c移动到a上 将2号盘子从c移动到b上 将1号盘子从a移动到b上 将3号盘子从c移动到a上 将1号盘子从b移动到c上 将2号盘子从b移动到a上 将1号盘子从c移动到a上 将4号盘子从c移动到b上 将1号盘子从a移动到b上 将2号盘子从a移动到c上 将1号盘子从b移动到c上 将3号盘子从a移动到b上 将1号盘子从c移动到a上 将2号盘子从c移动到b上 将1号盘子从a移动到b上 */
相关文章推荐
- 递归和分治思想的典型应用—汉诺塔问题
- 【算法基础】递归分治算法解决汉诺塔问题
- 使用递归-分治方法解决汉诺塔问题
- 递归和分治思想的典型应用—汉诺塔问题
- 递归分治--汉诺塔问题
- 高效算法设计_递归与分治(棋盘覆盖问题,循环日程表,巨人与鬼)
- 汉诺塔问题的递归实现(扩展)
- 汉诺塔问题--递归实现
- 递归思想:汉诺塔问题
- 汉诺塔问题递归解法
- 汉诺塔问题的递归解法
- [置顶] 递归解决汉诺塔问题
- 6261:汉诺塔问题(2.2基本算法之递归和自调用函数)
- 汉诺塔问题 递归
- 汉诺塔问题的递归解法与非递归解法(堆栈解法)
- 汉诺塔问题.递归
- 递归:解决汉诺塔问题(数据结构3.2 P103)
- Java经典编程300例之实例047 汉诺塔问题求解(递归)
- 汉诺塔问题的递归实现(扩展)