我在计算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
答案 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
的幂,则可以获得正方形。