递归-汉诺塔问题

自古美人都是妖i 提交于 2019-12-11 08:15:53

汉诺塔问题:

有三根柱子,开始时,所有的圆盘按从大到小的次序自下而上叠放在一根柱子上(圆锥形结构),现在要将整叠圆盘从一根柱子移到另一根柱子。移动时满足:

  1. 每次只能移动柱子最上面一个圆盘
  2. 不能出现大圆盘在小圆盘上方的情况。

将n个圆盘借助B柱从A柱移动到C柱

 public static void TowersOfHanoi(int n, char A, char B, char C) {
        if (n == 1) {
            System.out.println("move disk from " + A + " to " + C);
            return;
        }
        TowersOfHanoi(n-1, A, C, B);
        System.out.println("move disk from " + A + " to " + C);
        TowersOfHanoi(n-1, B, A, C);
    }
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!