在Javascript中计算平方和

时间:2013-09-29 18:47:27

标签: javascript

我在计算javascript中的平方和时遇到问题。当我定义for循环和变量索引时,我迷路了。谁能帮我理解我做错了什么?

var sums = [];
var sumsqs= Number(prompt("Please enter a number to sum the square"));
for (var index = 0; index < sumsqs.length; index++) {
var total = total + sumsqs[index] * sumsqs[index];

document.write("<h1>The sum of squares is " + total + ".</h1>");

谢谢你, VIV

4 个答案:

答案 0 :(得分:5)

如果您希望将逗号分隔的数字列表转换为数字数组,则不是

Number(prompt("Please enter a number to sum the square"))

(将尝试将整个字符串转换为数字),而是

prompt("Please enter a number to sum the square").split(",").map(Number)

您也无法同时声明并开始使用total;你会得到NaN。在循环之前声明并初始化它:

var total = 0;

for (var index = 0; index < sumsqs.length; index++) {
    total += sumsqs[index] * sumsqs[index];
}

答案 1 :(得分:0)

var inputNumber = Number(prompt("Please enter a number to sum the square"));
document.write("<h1>The sum of squares is " +
   ((inputNumber * (inputNumber + 1) * (2 * inputNumber + 1))/6) + ".</h1>");

它使用此处提到的公式来计算结果。 http://library.thinkquest.org/20991/gather/formula/data/209.html

答案 2 :(得分:0)

感谢大家的反馈。我刚看到它有点太晚了。以下是我完成作业所做的工作。我能够在Web控制台的帮助下解决这个问题。

再次感谢!

var sumsqs = [];
    var sumsq = Number(prompt("Please enter a number to calculate the sum the square or -1 to stop"));
    while (sumsq != -1) {
    sumsqs.push(sumsq);
      sumsq = Number(prompt("Please enter a number to calculate the sum the square or -1 to stop"));
    }

    var total_sumsqs = 0;
    for (var index = 0; index < sumsqs.length; index++) {
    total_sumsqs = total_sumsqs + sumsqs[index] * sumsqs[index];
    }

    document.write("<h3>The sum of squares is " + total_sumsqs + ".</h3>");

答案 3 :(得分:0)

您可以使用以下表达式来计算逗号分隔列表的平方和:

Math.hypot(...prompt().split`,`)**2

说明:

...prompt().split`,`接受用户输入,并使用,作为分隔符从输入创建一个数组。然后,使用spread operator将结果数组的元素转换为Math.hypot()的参数。

Math.hypot()返回其参数平方和的平方根,因此,如果使用exponentiation operator将结果提高到2的幂,则可以获得正方形。