递归(1)

汉诺塔

 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 }
原文地址:https://www.cnblogs.com/zoulingjin/p/8604716.html