码迷,mamicode.com
首页 > 编程语言 > 详细

研磨数据结构与算法-07递归之高级应用

时间:2015-09-21 01:54:56      阅读:239      评论:0      收藏:0      [点我收藏+]

标签:java 算法

汉诺塔的问题解决:

 汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。

public class HanoiTower {

/**

* 移动盘子

* topN:移动的盘子数

* from:起始塔座

* inter:中间塔座

* to:目标塔座

*/

public static void doTower(int topN,char from,char inter,char to) {

if(topN == 1) {

System.out.println("盘子1,从"+ from + "塔座到" + to + "塔座");

} else {

doTower(topN - 1, from, to, inter);

System.out.println("盘子" + topN +",从" + from + "塔座到" + to + "塔座" );

doTower(topN - 1, inter, from, to);

}

}

}

测试:

public class TestHanoiTower {

public static void main(String[] args) {

HanoiTower.doTower(5, ‘A‘, ‘B‘, ‘C‘);

}

}




本文出自 “8159085” 博客,请务必保留此出处http://8169085.blog.51cto.com/8159085/1696502

研磨数据结构与算法-07递归之高级应用

标签:java 算法

原文地址:http://8169085.blog.51cto.com/8159085/1696502

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!