汉诺塔算法的JAVA实现 发表于 2017-09-24 | 分类于 学习笔记 | | 浏览 次 主要是运用了递归的思想,将问题分拆成3步 将1至n-1的盘子借助三号塔移动到二号塔 将n移动到三号塔 将1至n-1的盘子移动到三号塔 具体实现12345678910111213141516171819202122public class Main { static int i=0; public static void main(String[] args) { hanoi(20,"一号塔","二号塔","三号塔"); } private static void hanoi(int n, String s, String m, String e) { if (n==1){ move(s,1,e); }else { hanoi(n-1,s,e,m); move(s, n, e); hanoi(n-1,m,s,e); } } static void move(String s, int n, String e){ i++; System.out.println("将编号为"+n+"的盘子,从"+s+"移动到"+e+"移动了"+i+"次"); }}