1、玩法java
1.有三根杆子A,B,C。A杆上有若干碟子
2.每次移動一塊碟子,小的只能疊在大的上面
3.把全部碟子從A杆所有移到C杆上ide
2、解答思路 spa
這是一個典型的遞歸場景的應用code
1 // n- 要移動的碟數 2 // a- 移動杆,b- 藉助杆,c- 目標杆 3 public static hanoi(int n,String a ,String b,String c) { 4 if(n == 1) { 5 System.out.println(a + "--->" + c); 6 } else { 7 hanoi(n-1,a,c,b); 8 System.out.println(a + "--->" + c); 9 hanoi(n-1,b,a,c); 10 } 11 }
一、若A杆上只有一個碟子,直接移動到Cblog
if(n==1) { System.out.println(a + '--->' + c); }
二、若A杆上碟子數爲n(n>1),分「三步走」遞歸
2.一、將A杆上n-1個碟子藉助C移動到Bevent
hanoi(n-1,a,c,b)
2.二、將A杆上最後一個移動到Cclass
System.out.println(a + "--->" + c)
2.三、將B杆上的n-1個碟藉助A移動到Ccli
hanoi(n-1,b,a,c)