- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
引用How can I get the sum of all odd fibonacci vales in javaScript?来自 FCC 的可能解决方案如下所示:
function sumFibs(num) {
let prevNumber = 0;
let curNumber = 1;
let result = 0;
while (curNumber <= num) {
if (curNumber % 2 !== 0) {
result += curNumber;
}
curNumber += prevNumber;
prevNumber = curNumber - prevNumber;
}
return result;
}
我想稍微扩大一下问题的范围:你认为有可能使用递归算法吗?我想没有。您对此有何看法?这是“仅迭代”的情况吗?
最佳答案
你可以使用闭包来保证变量作用域的安全,那么递归就很简单了。
我将变量移动到一个对象中,以便在函数完成后可以使用 Object.assign
轻松重置它们。
const sumFibs = (() => {
const o = { p: 0, c: 1, r: 0 };
const d = Object.assign({}, o);
const sumFibs = n => {
if (o.c >= n) {
const t = o.r;
Object.assign(o, d);
return t;
}
if (o.c % 2 !== 0)
o.r += o.c;
o.c = o.c + o.p;
o.p = o.c - o.p;
return sumFibs(n);
}
return sumFibs;
})();
console.log(sumFibs(100)); // 188
关于javascript - FreeCodeCamp 的“奇数斐波那契数之和”任务是否有递归版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42762589/
我目前正在通过 freecodecamp 网站的 javascript 部分进行练习,我试图理解为什么特定的方法可以解决它。 function nextInLine(arr, item) { /
我正在尝试解决 freecodecamp 中的高尔夫代码挑战,但我无法真正弄清楚我的代码出了什么问题这里直接link 。链接包含我尝试运行的代码,只需访问该链接即可。 我的JS: function g
我正在尝试解决这个挑战“寻找和毁灭”。我不知道出了什么问题。有什么帮助吗? 寻找并摧毁您将获得一个初始数组(销毁器函数中的第一个参数),后跟一个或多个参数。从初始数组中删除与这些参数具有相同值的所有元
我在 freecodecamp 中遇到了一个 JavaScript 挑战,这可能非常简单,但我仍然不明白如何去做。其过程如下: // Setup function phoneticLookup(val
我无法提交表单 我已经彻底检查了我的代码几个小时,并查看了 freecodecamp 论坛上的帖子,但在我看来我仍然无法提交表单,也无法查明问题所在。 Email:
引用How can I get the sum of all odd fibonacci vales in javaScript?来自 FCC 的可能解决方案如下所示: function sumFib
我正在使用 freecodecamp 并进行以下练习: https://learn.freecodecamp.org/javascript-algorithms-and-data-structures
我正在努力在 FreeCodeCamp 上传递一些看起来很简单的东西。我的代码应该通过所有测试(console.log 似乎是这么认为的)。你觉得怎么样,我是不是漏掉了什么? 我失败的测试用例: ur
我正在尝试在 freecodecamp 上完成 twitch api。 我有一个 allTotalUsers 数组,其中包含我正在循环访问的用户。 我的循环似乎正确地为我的 allTotalUsers
我正在尝试为 freeCodeCamp 收银机项目创建一个 javascript 收银机函数。 它应该如何工作的描述如下: 设计收银抽屉功能checkCashRegister()接受购买价格作为第一个
function titleCase(str) { var strArr = str.toLowerCase().split(' '); var strUp = [str.leng
我正在参加 Freecodecamp 算法挑战,因为我是编程新手。问题描述如下: Reverse the provided string. You may need to turn the strin
当我在免费代码训练营开始“Falsy Bouncer”挑战时,我遇到了一个小问题。当我尝试创建如下所示的新 bool 对象时: var bool = new Boolean(); 出现一个黄色三 An
我正在应对 FreeCodeCamp 挑战,但遇到了以下挑战: Our goal for this Algorithm is to split arr (first argument) into sm
我正在 freecodecamp.com 上学习第 15 课,但我似乎无法完成它。目标是让我的 h2 元素使用字体 'Lobster',同时保持 Monospace。我应该复制,“http://fon
请参阅我针对以下挑战的(非最佳)解决方案: Return the number of total permutations of the provided string thatdon't have
我正在做一项练习,要求: 创建一个函数,该函数查找对象数组(第一个参数)并返回具有匹配属性和值对(第二个参数)的所有对象的数组。如果要包含在返回的数组中,源对象的每个属性和值对都必须存在于集合中的对象
我的代码不在网页上显示 Logo 、显示名称和状态,尽管它们显示在控制台中。请帮我找出问题所在。我非常感激!谢谢! 这是我的笔: https://codepen.io/cmtran/pen/vJGRW
返回排序后应将值(第二个参数)插入数组(第一个参数)的最低索引。返回值应该是一个数字。 例如,getIndexToIns([1,2,3,4], 1.5) 应该返回 1,因为它大于 1(索引 0)但小于
我对 JavaScript 还比较陌生。我正在开发 freeCodeCamp - “随机报价机”。并尝试发送变量和/或 html .class。 到目前为止我的代码:Code Pen $('#twee
我是一名优秀的程序员,十分优秀!