Для тех кто долго ломает голову над простой задачей(как я)
var days = 9; // Дней в периоде
var period = 3; // Как часто я ем протеин (раз в три дня)
var workDayAmount = 200; // Количество протеина в будние
var weekendAmount = 100; // Количество протеина в выходные
var total=0;
for(var today=period;today<=days;today+=period)
{
total+=workDayAmount;
if(today%7==6||today%7==0)
total-=weekendAmount;
}
console.log(total);
Понятно, что ничего не понятно. Вот не могу въехать и все тут.
вот эту часть еще понимаю - for(var today=period;today<=days;today+=period) все достаточно логично,
а вот дальше
{
total+=workDayAmount;
if(today%7==6||today%7==0)
total-=weekendAmount;
} совсем не понимаю. Можете объясить почему так? Пожалуйста.
for(var today=period;today<=days;today+=period) { // Начинаем считать от 1го попавшего периода прибавляя период с каждым разом, пока период не будет равен количеству дней
total+=workDayAmount; // каждый день кратен периоду плюсуем к общей суме протеина
if(today%7==6||today%7==0) // проверяем все дни которые были в периоде, 1я часть " today%7==6" проверяет не попадает ли это на субботу, 2 я часть не попадает ли на воскресенье
total-=weekendAmount; // при каждом попадании отнимаем лишних 100 протеина в этот день (выходной же)
}
console.log(total);
Это потому, что в случае выходного нужно вычитать из total не weekendAmount, а разницу между workDayAmount и weekendAmount. И тогда всё будет сходиться: