递归算法的汉诺塔有关问题JAVA实现
递归算法的汉诺塔问题JAVA实现
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"); } }