分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同。求出子问题的解,就可得到原问题的解。即一种分目标完成程序算法,简单问题可用二分法完成。
public class TowerOfHanoi { public static void main(String[] args) { towerOfHanoi(3,'A','B','C'); } public static void towerOfHanoi(int num,char a,char b,char c) { if (num == 1) { System.out.println("第1个盘从 " + a + "->" + c); } else { towerOfHanoi(num - 1,a,c,b); System.out.println("第" + num + "个盘从 " + a + "->" + c); towerOfHanoi(num - 1, b, a, c); } } }