Третья программа "Протеиновый коктейль"

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

не проходит проверку на 25 дне. Что не так?

эм, а зачем вообще делать шаг 1 день, если прием каждые 3 дня? шаг цикла должен быть period.
также у вас отсутствует проверка на воскресенье.

var days = 9; // Дней в периоде
var evenDayAmount = 200; // Количество протеина в чётные дни
var oddDayAmount = 100; // Количество протеина в нечётные дни
var total = 0; // Общее количество протеина

for (var i = 1; i <= days; i++) {
  if (i % 2 == 0) {
    total += evenDayAmount;
  } else {
    total += oddDayAmount;
  }
}
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 % 7 === 0){
            total += 100;
        }
        else if(i % 7 === 6){
            total += 100;
        }
        else{
          total += 200;  
        }
}

Сначала не мог решить нормально, нашел лазейку,но через костыли.
Потом решил посмотреть подсказку. Не понял зачем перебирать каждый день, а не использовать период. Решил все таки делать через период. А вот подсказка по определению дня с помощью остатка по делению была реально дельная, сам не допер.
Это самое адекватное решение которое у меня вышло. На мой взгляд сносно.

первые два ветвления объедините в одно, у вас один и тот же вывод из них
старт цикла должен быть не в 3, а в period