package com.algorithm;
/**
* 汉诺塔问题
* 所有的盘子刚开始都放在塔座A上,要求将所有的盘子从塔座A移动到塔座C,每次只能移动一个盘子,任何盘子不能放在比自己小的盘子上
* @author lenovo
*
*/
public class HanoiTower {
/**
* 移动盘子
* TopN:移动的盘子数
* from :起始塔座
* inter:中间塔座
* to:目标塔座
*/
public static void doTower(int TopN,String from,String inter,String 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 static void main(String[] args) {
doTower(2,"A","B","C");
}
}