【问题标题】:Sum of First Squared n Numbers Javascript一阶 n 数的平方和 JavaScript
【发布时间】:2014-01-31 20:41:13
【问题描述】:

好的,所以我需要创建一个 javascript 程序来查找第一个 n 平方数的总和(因此是标题)。除了公式,我几乎都完成了

<hmtl>
<body>
<center>
<p1>Sum of First n Whole Numbers</p>
<p1>Please enter a value into both boxes<br>
Press the button and the computer will determine the sum of all the numbers leading up         to yours</p>
<script>
function sum() {
a = parseFloat(document.getElementById('boxone').value);


alert("The sum is "+); 
}
</script>

Value 1: <input type="text" id="boxone" value="0">
<input type="submit" onclick="sum()" value="Summarize">
</center>
</body>
</html>

我知道公式是k^2=(n(n+1)(2n+1))/6,但我不知道如何将其放入代码中

【问题讨论】:

  • 闻起来像家庭作业。你试过什么?
  • 这只是简单的算术,他们不是在课堂上教过你怎么写吗?
  • 将脚本放在&lt;/body&gt; 之前的末尾,只需将a 替换为n,您只需将k^2= 替换为Math.sqrt 并将其放在后面+... 明白了吗?
  • 我整个学期都在远程学习,我唯一遇到的问题是 n(n+1)。当我把它放进去时,代码就停止了。
  • 您需要n*(n+1)*(2*n+1)/6。一般来说,你总是需要明确乘法符号。

标签: javascript formula


【解决方案1】:
alert("The sum is "+ a*(a+1)*(2*a+1)/6); 

在任何编程语言中都没有“隐式乘法”这样的东西(除了一些符号数学程序)。但是隐式乘法正是您的公式所具有的。另请注意,您需要将n 替换为a,因为这是您拥有boxone 值的变量(我认为这是输入)。

明确地计算值对您来说是一个有趣的练习 - 因此,与其应用聪明的公式,不如让计算机更努力地工作。这可能是这样完成的:

var mySum = 0;
for (var i=1; i<=a; i++) {
  mySum = mySum + a * a;
}

alert("the long way, I get " + mySum);

【讨论】:

  • 嗯,一切似乎都很好(谢谢),但看起来我的公式全错了。你有没有机会,或者任何人都知道?
  • 我刚刚在我的第一个表达式中发现了一个错字 - 当我将 n 更改为 a 时,我不小心覆盖了 2。看看能不能解决。你有正确的公式 - 见fredonia.edu/faculty/math/JonathanCox/math/SumOfSquares/…
【解决方案2】:

你需要通过取两边的平方根来重写它:

k=Math.sqrt((n*(n+1)*(2*n+1))/6);

如果n 始终为正,您可以丢弃负根,因为总和始终为正。

【讨论】:

  • 因为这是从 1 到 n 的总和,所以我认为 n 总是正数...而且你需要 2*n 而不是 2n
  • 谢谢,在我的复制和粘贴中错过了 *。
猜你喜欢
  • 2020-09-18
  • 2012-04-29
  • 1970-01-01
  • 1970-01-01
  • 2017-12-23
  • 1970-01-01
  • 1970-01-01
  • 2016-04-25
  • 1970-01-01
相关资源
最近更新 更多