这个问题也可能是(取决于你如何看待它) - 如何使用 for 循环进行基本的数学运算,将 3 的倍数的总和相加
所以我正在做 Project Euler 的问题 1。
我(已经)撞到了一堵钢筋墙。我可以使用一些帮助 - 请只解决问题的特定部分(我不只是寻找问题的答案,而是寻找我的具体问题的答案,所以我可以继续尝试解决剩余问题使用你们在这里给我的任何答案)...
无论如何。
我(想我)创建了一个 for 循环,它将给我 3 的倍数。但是,我试图存储 for 循环的每次迭代的结果,以便它加起来就是这些倍数的总和,即我'我试图存储循环的每次迭代的结果——无论是存储到数组中还是存储到获取倍数总和的变量中——这对我来说并不重要——我不介意学习这两种方法。
我敢肯定这听起来有点令人困惑,所以让我用一个例子来画我的照片......
我有一个for循环:
for (i = 1; i <= 3; i++) {
var x = 0;
x += (i * 3);
WHAT DO I DO NEXT????
^ 所以我认为这给了我 x 在循环的第一次迭代时的值为 3,在第二次循环中 x 的值为 9,在最后的循环中 x 的值为 18。这是正确的,对吧?(如果这返回 18,我认为我不需要将每次迭代的值存储到数组中)
第一次迭代:
i = 1; x = 0
原方程...
(i * 3) + x
所以...
(1 * 3) + (x = 0) = 3
所以在完成第一个循环后,x 的值为 3,对吧???(问题:我将如何存储 x 的这个值(即 3) - 在 for 循环的这个阶段,我将如何将它存储在数组中?)
循环的第二次迭代:
i = 2; x = 3
(2 * 3) + (x = 3) = 9
(与以前相同的问题:如何将此值添加到数组中?)
第三次迭代:
i = 3; x = 9
(3 * 3) + (x = 9) = 18
问:这不应该是完成 for 循环后 x 的最终值吗???出于某种原因,当我运行代码时,x 的最终值为 9,而不是 18
所以,基本上我正在尝试添加 3 个值的总和......但接下来我该怎么做?我认为我的 for 循环会在每个循环之后将等式的结果添加到 x,但不是以 w/18(的总和3 + 6 + 9
)结束,x 的值是 9?
我应该使用数组吗?如果是这样,我想我可以将返回值添加到数组中,但我不确定如何将循环的每次迭代的结果添加到数组中。可能是以下?...
for (i = 1; i <= 3; i++) {
var array = [];
x = 0;
x += (i *3);
array.push(x);
};
^ 我尝试在 jfiddle 中运行它,但它只会将 x (9) 的最后一个值添加到数组中......那么在 for 循环的每次迭代之后我将如何将 x 的值添加到数组中?而且我没有看到我的 for 循环有什么问题,它将 x 的值返回为 9?
另外,我假设随着我们的进步,欧拉问题变得更加困难?如果是这样,我有大量的工作/实践要做......
提前致谢...