gpt4 book ai didi

javascript - Crockford 的 hanoi 函数(来自 "The Good Parts")

转载 作者:数据小太阳 更新时间:2023-10-29 05:48:59 24 4
gpt4 key购买 nike

<分区>

目前,我正在阅读道格拉斯·克罗克福德 (Douglas Crockford) 的书,汉诺塔的功能让我有点头疼。即使在控制台上记录了一些东西,我也无法真正理解发生了什么。这是我添加的功能:

var hanoi = function (disc, src, aux, dst) {
console.log(disc);
console.log(src, dst);
if (disc > 0) {
hanoi(disc - 1, src, dst, aux);
console.log('Move disc ' + disc + ' from ' + src + ' to ' + dst);
hanoi(disc - 1, aux, src, dst);
}
}

hanoi(3, 'Src', 'Aux', 'Dst');

结果如下:

3
Src Dst
2
Src Aux
1
Src Dst
0
Src Aux
Move disc 1 from Src to Dst
0
Aux Dst
Move disc 2 from Src to Aux
1
Dst Aux
0
Dst Src
Move disc 1 from Dst to Aux
0
Src Aux
Move disc 3 from Src to Dst
2
Aux Dst
1
Aux Src
0
Aux Dst
Move disc 1 from Aux to Src
0
Dst Src
Move disc 2 from Aux to Dst
1
Src Dst
0
Src Aux
Move disc 1 from Src to Dst
0
Aux Dst

我很早就迷路了。结果的第6行,如何从Src Aux回到Src Dst?

当函数仅使用“disc - 1”调用自身时,disc 的数量如何在达到 0 后再次增加?

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com