Sparrow_2684关于汉诺塔问题的理解(面向0基础的初学者🤓 中发帖

对于汉诺塔这个经典的递归问题,其实很多新人在刚接触的时候理解起来是比较抽象的,所以我将以4层汉诺塔的代码解决过程,来让人能更清晰的理解汉诺塔以及递归的思想(这里说明,以下为了区分功能,我们将三个塔命名为 起始塔 辅助塔 目标塔) 
首先对于递归,在概念上,就是将大问题逐个拆分成能够独立解决的小问题然后倒推大问题的答案,这里我用一个高中的问题来帮助大家理解
f(n)=2f(n−1),f(0)=1
求 f(6) = ?
这里的f(6),其实就是不停缩小,直到缩小到f(0)可以直接求解,这就是递归的核心思想,同样我们也能看出来能使用递归的前提类似函数,即每个问题只有唯一的解(例如上述 f(6) 只有唯一一个答案),且连续(即可以由小问题推到而来,例如 f(6) 可以由 f(5)推导出,也可以由f(4)推导出…)
那么我接着来看汉诺塔问题,首先对于不同层数的汉诺塔,都有唯一最优解;接下来为...