var hanoi = function(disc, src, aux, dst){ if(disc > 0){ hanoi(disc - 1, src, dst, aux); console.log("Move " + disc + " from " + src + " to " + dst); hanoi(disc - 1, aux, src, dst); }}
hanoi函数把一堆圆盘从一根柱子一到另一根柱子,必要时使用辅助的柱子。它把该问题分解成三个子问题。首先,他移动一队圆盘中娇小的圆盘到辅助柱子上,从而露出低下较大的圆盘。然后它就移动低下的圆盘到目标柱子上。最后,他将刚才较小的圆盘从辅助柱子上在移到目标柱子上。通过递归调用自身去处理一对圆盘的移动,从而解决那些子问题。