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

Судя по комментариям я так понимаю, что условия задачи немного видоизменились…

Вот мой вариант, было довольно просто решить

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


for (var today = 1; today <= days; today++) {
  if (today % 2 === 0) {
    console.log('Take ' + evenDayAmount + ' gram');
    console.log(total += evenDayAmount);
    } else {
      console.log('Take ' + evenDayAmount + ' gram');
      console.log(total += oddDayAmount);
      }
}

или

for (var today = 1; today <= days; today++) {
  if (today % 2 === 0) {
    console.log('Take ' + evenDayAmount + ' gram');
    total += evenDayAmount;
    } else {
      console.log('Take ' + oddDayAmount + ' gram');
      total += oddDayAmount;
      }
}
console.log('Total amount of protein is ' + total + ' gram');

С нынешними условиями задача простая, но как тренировка для мозга и рук в усвоенном материале вполне подходит. Соответственно мой вариант:

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;
}
console.log(total);
}

Проще и короче.

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

for ( var today=1; today<=days; today++ ) {
if ( today%2 === 0 )
{ total+= evenDayAmount; }
else { total+= oddDayAmount; } }

1 лайк

В чем ошибка? вроде логично
var total=0;
for(var i=1;i<=days;i++){
if (i%3===0 && i%6!==0 && i%7!==0){
total += workDayAmount;
}
else if (i%6===0 || i%7===0){
total+=weekendAmount;
}
}

объясни плиз это как ---- n % 7 === 6

остаток от деления на 7 строго равен шести?
проверка на 6 день недели

ошибка в том, что вы не понимаете как работает оператор %. читайте тут

только дошло, забыл совсем, спасибо

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

for (var i = 3; i <= days; i += period){
var dayOfWeek = i % 7;
if ((dayOfWeek >= 1) && (dayOfWeek <= 5)) {
total += workDayAmount;
}
else if ((dayOfWeek === 6) || (dayOfWeek === 0)) {
total += weekendAmount;
}
};

это задание безусловно в топе самых непонятных по формулировке задания… "После объявления переменных добавьте условие, проверяющее, что mode имеет значение 'pageCopy'"-что это вообще…в теории к этому заданию ни слова об условии, кнопка показать ответ не работает, а время подписки идет

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

for (var i=1; i<=days; i+=1) {
if (i % 2 === 0) {
total+=evenDayAmount;
} else {
total+=oddDayAmount;
}
console.log('Общее количество протеина: '+total);
}

Я так понял это задание прошло через много изменений)
Я сделал так)

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

for (var currentDay = 1; currentDay <= days; currentDay += 1) {
if(currentDay % 2 === 0) {
total += evenDayAmount } else
{ total += oddDayAmount }
}

Здравствуйте, об условиях рассказывается в отдельной главе «Условия», которая предшествует «Циклам».

Во втором задании «Циклов» (https://htmlacademy.ru/courses/211/run/2) есть напоминание про условия и как они работают. И есть ссылка на курс, на случай, если студент забыл, как работать с условиями. Если вы проходите задания последовательно, вы можете увидеть это напоминание, вспомнить про условия и двигаться дальше.

Если у вас не работает кнопка «Показать ответ», уточните, пожалуйста, ваш браузер и операционную систему. Мы проверим

Может кому-то пригодится мой вариант кода. Вроде выше я его не видел.

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

if (days!=0) {
for (var i = 1; i <= days; i++) {
if (i % period === 0) {
if ((i-6) % 7 === 0 || i % 7 === 0) {
total += weekendAmount;
} else {
total += workDayAmount;
}
}
}
} else {total = 0;}

почитайте про остаток от деления, вы явно не до конца понимаете как он работает (иначе бы вот это не писали (i-6) % 7 === 0 )

спасибо! теперь разобрался

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

for ( var i=1; i<=days; i=i+2)
{
total+=oddDayAmount;
console.log(total+‘нечет’);
}

for ( var i=2; i<=days; i=i+2)
{
total+=evenDayAmount;
console.log(total+‘чет’);
}

Мой вариант решения задачи:

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

for (var i = 1; i <= days; i++){
  if (i % 2){
    total += oddDayAmount
  } else {total += evenDayAmount;
    }
}

Только я не понял как сделать, чтобы приём протеина начинался с 1го дня (а так он засчитывает задачу)

1 лайк

Вы выводите результат до выполнения цикла if, поэтому консоль показывает значение за предыдущий день.