若有n个盘子,则移动完毕所需次数为2ⁿ-1
移动最少次完成汉诺塔游戏
实现代码:
function hanoi(n, x, y, z) {
if (n == 1) {
console.log("从" + x + "到" + z)
} else {
hanoi(n - 1, x, z, y)
console.log("从" + x + "到" + z)
hanoi(n - 1, y, x, z)
}
}
hanoi(3, "A", "B", "C")
假设有三个盘子,移动所需步数为2³ - 1= 7
程序运行过程:
(可通过打断点的方式了解)