zoukankan      html  css  js  c++  java
  • 汉诺塔问题

    汉诺塔问题,使用的是递归,将大问题分解成小问题的编程思想。

     1 package day8_01_Founcation;
     2 /*
     3  * 汉诺塔问题
     4  */
     5 public class HanoiTowerProblem {
     6     public static void main(String[] args){
     7         hannuoiTower(4,'A','B','C');
     8     }
     9     /*
    10      * 利用递归解决汉诺塔问题
    11      * 大问题:将n个盘子从A柱子移到B柱子其中借助C柱子
    12      * 小问题:
    13      * 将(n-1)个盘子A ---> C
    14      * 将大盘子  A ---> B
    15      * 将 (n-1)个盘子 C ---> B
    16      * 该函数中n表示有几个盘子 ,char from, to, temp; 表示三根柱子 
    17      */
    18     static void hannuoiTower(int n,char from,char to,char temp){
    19         if(n==0)return;
    20         //将(n-1)个盘子A ---> C
    21         hannuoiTower(n-1,from,to,temp);
    22         //将大盘子  A ---> B
    23         System.out.println(from+"----->"+temp);
    24         // 将 (n-1)个盘子 C ---> B
    25         hannuoiTower(n-1,temp,to,from);
    26         
    27     }
    28 }

    输出结果

    A----->C
    A----->C
    C----->A
    A----->C
    C----->A
    C----->A
    A----->C
    A----->C
    C----->A
    C----->A
    A----->C
    C----->A
    A----->C
    A----->C
    C----->A
    以粮为纲全面发展
  • 相关阅读:
    右滑返回上一页
    flutter 启动图
    [题解]NOIP2014
    [题解]LightOJ1289 LCM from 1 to n
    [题解]CodeForces442B Andrey and Problem
    [题解]HDU4035 Maze
    [题解]CodeForces#290(div1)
    SCP-bzoj-1078
    SCP-bzoj-1068
    SCP-bzoj-1054
  • 原文地址:https://www.cnblogs.com/alexliuf/p/13153187.html
Copyright © 2011-2022 走看看