Создать цикл по специальному условию? Есть массив c2 длины length, необходимо просуммировать произведения sum2=c2[j]*c2[j+2m], причем j+2m не превышает length и >=0 вот часть кода:var sum2=0;
for(var j=0;j<c2.length;j++)
{
for(var m=0;m<(c2.length-1)/2,j+2*m<c2.length;m++)
{
sum2+=c2[j]*c2[j+2*m];
document.write("Value c2:"+(j+2*m)+ "");
}
document.write("Value c2 coeff:"+c2[j]+ "");
}
document.write("Value c2 coeff sum2:"+sum2+ "");
Во внутреннем цикле суммируются не все элементы например отрицательные j+2*m

21 Авг 2019 в 06:23
273 +1
0
Ответы
1

Для того чтобы исправить проблему отрицательных значений j+2m, мы можем изменить условие внутреннего цикла. Мы можем проверять, что j+2m >=0 и j+2*m < c2.length. Вот исправленный код:

var sum2=0;
for(var j=0;j<c2.length;j++)
{
for(var m=0;m<(c2.length-1)/2 && j+2*m<c2.length && j+2*m>=0;m++)
{
sum2+=c2[j]*c2[j+2*m];
document.write("Value c2:"+(j+2*m)+ "<br>");
}
document.write("Value c2 coeff:"+c2[j]+ "<br>");
}
document.write("Value c2 coeff sum2:"+sum2+ "<br>");

Теперь внутренний цикл будет выполняться только когда значение j+2*m находится в диапазоне от 0 до c2.length.

20 Апр 2024 в 13:19
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир