• 递归


    经过一次递归后,问题还是原问题,但是规模变小了;

    初始状态是A柱上有n个盘子,B、C两个柱子空。要想将盘子移到C柱上,首先要把第n个盘子移到C柱上,而要移动第n个盘子就要先把前n-1个盘子移动到B柱上。所以

    第一步:将前n-1个盘子移动到B柱上(先不用管怎么移动),将第n个盘子移动到C柱上。

    移动后的状态是A柱空,B柱上有n-1个盘子,C柱空(因为第n个盘子最大,其他所有盘子都可以放,所以C柱上相当于空。)

    第二步:将B柱上的n-2个盘子移动到A柱上(先不用管怎么移动),将第n-1个盘子移动到C柱上。

    移动后的状态和初始状态相同只是规模小了一点(前两步就已经实现了一次递归)

    第三步:利用递归直至n=1.

    当要把最大盘子上面的所有盘子移动到另一个空柱上时,不要关心具体如何移动,只用把它看做一个函数可以完成即可,不用关心函数的具体实现。如果你的思路纠结在这里,就很难继续深入了。

  • 相关阅读:
    冷门JS技巧
    JavaScript小技巧整理篇(非常全)
    JS实现标签页切换效果
    MySQL主从配置详解
    mysql主从复制(超简单)
    1.4isAlive()方法
    1.3currentThread()方法
    1.2.4注意Sysyem.out.println与i--
    1.2.3实例变量与线程安全
    1.2.2实现Runnable接口
  • 原文地址:https://www.cnblogs.com/wshyj/p/6058008.html
Copyright © 2020-2023  润新知