汉诺塔
- 思路
- 当n == 1时
直接将a座上的盘子移到b座上. - 当n > 1时
1) 将前n-1个盘子借助b座移到c座上.
2) 将a座上的第n个盘子移到b座上.
3) 将c座上的盘子移到b座上.
实现如下:
- 当n == 1时
public class Hanoi {
public static void move(int a, int b){
System.out.println((char)a + "--->" + (char)b);
}
public static void Hanoi(int n, int a, int b, int c){
if(n == 1)
{
move(a, b);
return;
}
Hanoi(n-1, a, c, b);
move(a, b);
Hanoi(n-1, c, b, a);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Hanoi(3, 'A', 'B', 'C');
}
}