java 汉诺塔问题
2016-05-10 14:57
591 查看
汉诺塔:
package HanoTower;
/**
* 目的:A->C,B是中介
*
* 思想:想把n 从A->C,需要把n-1从A->B,再把n-1从B->C,中间将N放在C
* 比如将2从A->C,那么将1放在B,(将2放在C),将1放在C,
* @author jalo
*
*/
public class HanoTower {
public static void moveDish(int dish, char from, char inter, char to) {
if(dish == 1)
System.out.println("将盘子 "+ dish + " 由 " + from + " 移动到 " + to);
else {
moveDish(dish-1, from, to, inter);
System.out.println("将盘子 "+ dish + " 由 " + from + " 移动到 " + to);
moveDish(dish-1, inter, from, to);
}
}
public static void main(String[] args) {
int nDishes = 3;//最大盘子号,从1开始
System.out.println("begin");
moveDish(nDishes,'A','B','C');
System.out.println("end");
}
}
package HanoTower;
/**
* 目的:A->C,B是中介
*
* 思想:想把n 从A->C,需要把n-1从A->B,再把n-1从B->C,中间将N放在C
* 比如将2从A->C,那么将1放在B,(将2放在C),将1放在C,
* @author jalo
*
*/
public class HanoTower {
public static void moveDish(int dish, char from, char inter, char to) {
if(dish == 1)
System.out.println("将盘子 "+ dish + " 由 " + from + " 移动到 " + to);
else {
moveDish(dish-1, from, to, inter);
System.out.println("将盘子 "+ dish + " 由 " + from + " 移动到 " + to);
moveDish(dish-1, inter, from, to);
}
}
public static void main(String[] args) {
int nDishes = 3;//最大盘子号,从1开始
System.out.println("begin");
moveDish(nDishes,'A','B','C');
System.out.println("end");
}
}
相关文章推荐
- java定时任务--Timer、TimerTask
- struts2 中,如何覆盖默认的错误消息
- Java之------单机版书店管理系统(设计思想和设计模式系列四)图书模块
- 【S2HS学习笔记】第一章节:Java EE应用和开发环境
- interface,abstract class,abstract interface Java中的接口,抽象类和抽象接口的异同
- java内存模型
- 深入分析 Java 中的中文编码问题
- spring的定时任务配置
- 第10次Java作业+LSYang
- java日志记录之Logger.getLogger()和LogFactory.getLog()的区别
- ant教程详解 javac java jar war delete copy mkdir move
- Java SE单例模式
- eclipse自动提示功能没了的解决办法
- eclipse自动提示功能没了的解决办法
- java中length,length(),size()区别
- 如何在 OSX 中開啟多個 Eclipse
- 用myeclipse实现hibernate注解简单例子
- java synchronized详解
- spring-security用户权限认证框架
- java.util.Scanner是Java5的新特征