2014-01-31 3 views
-4

Хорошо, поэтому мне нужно создать javascript программу, которая найдет сумму первых квадратов n чисел (отсюда и название). Я закончил почти все, кроме формулыСумма первых квадратов n номеров Javascript

<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, но я понятия не имею, как поместить его в код

+4

Пахнет домашней работой. Что вы пробовали? – Will

+2

Это просто простая арифметика, разве они не научили вас писать это в своем классе? – Barmar

+0

поместите скрипт в конец непосредственно перед '' и просто замените' '' '' '' '' '' '' '' '' '' '' '' '' '' '' и нужно только заменить 'k^2 =' на 'Math.sqrt' и поместить его после' + '... понял? – rafaelcastrocouto

ответ

0
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); 
+1

Хмм все кажется хорошо работающим (спасибо за это), но похоже, что у меня есть неправильная формула. Любой шанс, что вы, или, в любом случае, это знаете? – user3140981

+0

Я только что заметил опечатку в своем первом выражении - когда я изменил 'n' на' a', я случайно перезаписал '2'. Посмотрите, исправляет ли это это. У вас есть правильная формула - см. Http://www.fredonia.edu/faculty/math/JonathanCox/math/SumOfSquares/SumOfSquares.html. – Floris

0

Вы хотите переписать его, взяв квадратные корни с обеих сторон:

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

Если n всегда положительна, то вы можете отказаться от отрицательного корня, как сумма всегда будет положительным.

+3

Поскольку это сумма от 1 до n, я думаю, что n всегда положительно ... И вам нужно '2 * n' не' 2n'. – Floris

+0

Спасибо, пропустил * в моей копии и вставке. – adamdc78

Смежные вопросы