Tower of Hanoi

作者: 几千里也 | 来源:发表于2017-11-13 16:19 被阅读8次
    1. ABC 三根柱子
    2. 当前 A 柱套了 n 个圆环
    3. 由上至下这 n 个圆环的直径依次变大
    4. 要将所有圆环从 A 柱移到 C
    5. 显而易见 B 柱是辅助
    6. 每次移动 1 个圆环
    7. 始终保持 小圆环在上大圆环在下
    public class Hanoi {
        // 描述移动过程
        // n 个圆环
        // a 是起始柱 
        // b 是辅助柱
        // c 是目的柱
        public void move(int n, char a, char b, char c) {
            if (1 == n) {
                System.out.println("From " + a + " To " + c);
            } else {
                move(n - 1, a, c, b);
                move(1, a, b, c);
                move(n - 1, b, a, c);
            }
        }
    
        public static void main(String[] args){
            Hanoi hanoi = new Hanoi();
            hanoi.move(4, 'A', 'B', 'C');
        }
    }
    
    Illustration of a recursive solution for the Towers of Hanoi puzzle with 4 disks

    相关文章

      网友评论

        本文标题:Tower of Hanoi

        本文链接:https://www.haomeiwen.com/subject/pcpzmxtx.html