汉诺塔

来源:互联网 发布:vm虚拟机安装mac 编辑:程序博客网 时间:2024/06/04 18:45

汉诺塔

  • 思路
    1. 当n == 1时
      直接将a座上的盘子移到b座上.
    2. 当n > 1时
      1) 将前n-1个盘子借助b座移到c座上.
      2) 将a座上的第n个盘子移到b座上.
      3) 将c座上的盘子移到b座上.
      实现如下:
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');    }}
原创粉丝点击