递归调用(汉诺塔)
来源:互联网 发布:纵横数据 编辑:程序博客网 时间:2024/05/16 12:38
递归调用的两个准则是:一要保持原是问题的形式,逐步降低复杂度。二是最简单的情况可以直接解决。
汉诺塔的算法原理:
step1:把N-1个圆盘从original移动到temp
step2:把第N个圆盘从original移动到destination
step3:把N-1个圆盘从temp移动到destination
具体的代码如下:
public class Main {private void hano(int num, char original, char destination, char temp){//问题最简单的形式if(num == 1){move(original, destination);}//具体的算法,注意保持问题的原始形式else{hano(num-1, original, temp, destination);//step1move(original, destination);//step2hano(num-1, temp, destination, original);//step3}}private void move(char original, char destination) {System.out.println("direction: " + original + " --> " + destination);}public static void main(String[] args) {new Main().hano(3, 'A', 'B', 'C');}}
0 0
- 递归调用(汉诺塔)
- 汉诺塔(递归调用)
- 递归调用(实现汉诺塔)
- hdu1997 汉诺塔VII(DFS递归调用)
- 汉诺塔C++实现(递归调用)
- 递归调用--汉诺塔
- 递归调用,汉诺塔问题
- 递归调用:汉诺塔
- 递归调用(一)
- 汉诺塔问题与递归调用
- 递归调用理解(C#)
- 【JAVA】递归调用(转)
- 递归调用
- 递归调用
- 递归调用
- 递归调用
- 递归调用
- 递归调用
- C语言声明,定义,赋值,初始化
- OC_03_初始化方法_便利构造器_继承
- C#一行代码打开任何格式的本地文档,word,ppt,mp3,remb都可以
- JAVA修饰符速查表
- 统一格式
- 递归调用(汉诺塔)
- An open-source audio search engine based on audio fingerprinting
- 【问题】tomcat开机自启动后项目无法加载数据
- 使用lingpipe自然语言处理包进行文本分类
- hdu 5222 Exploration
- 进度条动画
- PJSIP
- 我即将逝去的大学
- JDialog一段时间后自动销毁(Timer类实现)