Подскажите пожалуйста, что исправить чтобы заработало


#1

var days = 19; // Дней в периоде
var period = 3,total=0,i=0; // Как часто я ем протеин (раз в три дня)
var workDayAmount = 200; // Количество протеина в будние
var weekendAmount = 100; // Количество протеина в выходные

if (days==0) {
total=0;
console.log(total);
} else {
for ( i=3; i <= days; i=+3) {
if ((i==6) || (i==21) || (i==27))
{total = total + weekendAmount;}
else
{total = total + workDayAmount;}
}
console.log(total);
}

Я сделал, посчитал когда дни есть выходные т.е. по 100 протеина. Так вот у меня выдет ошибку, я не понимаю почему, нужна помощь


#2

А что это за подбор? Можете расшифровать?


#3

номер для когда надо есть 100 протеина, а не 200.
Я хочу сделать используя то, что дает курс, а не деление и проверка остатка, выходной или нет.


#4

+= пишется


#5


#6

period в цикле точно не должен меняться. А с помощью count != 6 вы можете исключить только первую субботу. В тестах же количество дней в большинстве случаев охватывает не одну неделю.


#7

Так тоже не работает. Почему в первом и в последнем проходит а в остальных нет?


#8

А как вы понимаете условие внутри if? Простыми словами, без программирования.


#9

Если count делится на шесть без остатка.

Я изменил на !=


#10

Но почему вы делите на 6?


#11

Может кому поможет, самый пока что простой код. Придумал сам после 3 часов сидения…

var days = 9; // Дней в периоде
var period = 3; // Как часто я ем протеин (раз в три дня)
var workDayAmount = 200; // Количество протеина в будние
var weekendAmount = 100; // Количество протеина в выходные
var total = 0;

for (var i = 3; i <= days; i += period) {
if (i == 6 || i == 21) {
total += weekendAmount;
}
else {
total += workDayAmount;
}
}


#12

Код рассчитан на 9 дней. А задача была рассчитывать на неопределенное количество дней. А если дней будет, например, 42? Тогда как же 27 (суббота) и 42 (воскресенье) учитывать?


#13

Вот рабочий код , а точнее код для прохождения …
Меня смущает :

"Во-первых, расчёт всегда начинается с понедельника. Это первый день."
т.е счетчик должен начинать свой отчет с 1 дня и выдавать false если он равен 1 или 2 а не с 3 как у меня и большинства , или я не прав.?:grinning:

var days = 9; // Дней в периоде
var period = 3; // Как часто я ем протеин (раз в три дня)
var workDayAmount = 200; // Количество протеина в будние
var weekendAmount = 100; // Количество протеина в выходные
var total=0;
for(i=3; i<=days;i+=period){
if(i%7===0||i%7===6){
total+=weekendAmount ;
}
else{
total+=workDayAmount;
}
}