汉诺塔,属于递归的应用范畴,递归不多说了,觉得递归难的建议以较浅层的递归去深刻理解,比如2层,3层递归
闲话不多说,直接上代码。
代码如下,可以先阅读后面的体会心得再理解代码,然后自我实现。
代码如上,可以先阅读体会心得再理解代码,然后自我实现。
---- 体会心得 ----
汉诺塔,前三层(最多 2^3-1=7步操作)是能够想象的,到第四层(15步)就比较复杂了,所以,我在深刻理解前三层的基础上,得出一定的结论,当原始柱子只剩一个盘子时,就一定是直接a–>c,此时,a其他的盘子(n-1个)一定是在b上。那么同理,在移动b上的全部盘子,设为m个(原a的n-1个)时,需要把b的m-1个(原a的n-2个),全部放到a上,把b的第m个(原a的n-1个)放到c上,依次同理,直至a或b只剩最后一个,直接放到c,结束。