开发者社区> 问答> 正文

汉诺塔算法的实现

汉诺塔算法的实现

汉诺塔游戏,玩法如下:

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

展开
收起
珍宝珠 2020-02-12 19:51:08 1613 0
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
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
数据+算法定义新世界 立即下载
袋鼠云基于实时计算的反黄牛算法 立即下载
Alink:基于Apache Flink的算法平台 立即下载