汉诺塔
1 /** 2 * 汉诺塔A为起始 B为依赖 C为目标 3 * @author lenovo 4 * 5 */ 6 public class HanNota { 7 private int i=1; 8 //n个盘子从A借助B挪到C== 9 public void hanNota(int n,char from,char dependOn,char to){ 10 if(n==1){ 11 move(1,from,to); 12 }else{ 13 hanNota(n-1,from,to,dependOn);//n-1个盘子依靠从A借助c移到B 14 move(n,from,to);//将最大的盘子移到C 15 hanNota(n-1,dependOn,from,to);//n-1个盘子从B借助A移到C 16 } 17 } 18 public void move(int n,char from,char to){ 19 System.out.println("第"+(i++)+"步从"+from+"----->"+to); 20 } 21 22 public static void main(String[] args) { 23 HanNota hanNota = new HanNota(); 24 hanNota.hanNota(3, 'A', 'B', 'C'); 25 } 26 27 }