开发者社区 问答 正文

汉诺塔算法的实现

汉诺塔算法的实现

汉诺塔游戏,玩法如下:

1.有三根杆子A,B,C。A杆上有若干碟子
2.每次移动一块碟子,小的只能叠在大的上面
3.把所有碟子从A杆全部移到C杆上

展开
收起
珍宝珠 2020-02-12 19:51:08 1627 分享
分享
版权
举报
1 条回答
写回答
取消 提交回答
  • public class MainClass {
        public static void main(String[] args) {
            int nDisks = 3;
            doTowers(nDisks, 'A', 'B', 'C');
        }
        public static void doTowers(int topN, char from, char inter, char to) {
            if (topN == 1){
                System.out.println("Disk 1 from "
                + from + " to " + to);
            }else {
                doTowers(topN - 1, from, to, inter);
                System.out.println("Disk "
                + topN + " from " + from + " to " + to);
                doTowers(topN - 1, inter, from, to);
            }
        }
    }
    
    

    以上代码运行输出结果为:

    Disk 1 from A to C
    Disk 2 from A to B
    Disk 1 from C to B
    Disk 3 from A to C
    Disk 1 from B to A
    Disk 2 from B to C
    Disk 1 from A to C
    
    2020-02-12 19:52:30 举报
    赞同 评论

    评论

    全部评论 (0)

    登录后可评论
问答分类:
问答标签:
问答地址: