gpt4 book ai didi

javascript - Eloquent Javascript 的 findSequence 说明

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

我坚持使用以下功能,该功能出现在我也查看过的其他几篇文章中。

function findSequence(goal) {
function find(start, history) {
if (start == goal)
return history;
else if (start > goal)
return null;
else
return find(start + 5, "(" + history + " + 5)") ||
find(start * 3, "(" + history + " * 3)");
}
return find(1, "1");
}

print(findSequence(24));

也在此链接中给出。

Javascript..totally lost in this tutorial

在上面的解释中,答案改为尝试将目标设置为 11。他们以 1 开始,首先针对 11 进行测试,然后以 6 开始,针对 11 进行测试。

我了解前两个步骤。但是,我不明白从第二步(比较 start:6 到 goal:11)到第三步(比较 start :3 到 目标:11)。

start 如何从 6 回到 3,然后回到 11(第四个项目符号)?

最佳答案

好的,这是使用控制台日志语句增强的代码版本。打开 Chrome/Opera/Firefox 开发工具并在那里执行此代码:

function findSequence (goal) {
function find (start, history, depth) {
depth = depth || 0;
console.log( Array( ++depth ).join('--> '), start, goal, history );
if (start == goal) {
console.warn( 'history' );
return history;
} else if (start > goal) {
console.error( 'null' );
return null;
} else {
console.info('recursion!');
return find(start + 5, "(" + history + " + 5)", depth) ||
find(start * 3, "(" + history + " * 3)", depth);
}
}
return find(1, "1");
}

console.info( findSequence(24) );

您将获得该程序的调用轨迹,并希望通过查看轨迹直观地掌握递归的概念。

关于javascript - Eloquent Javascript 的 findSequence 说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13096875/

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