var days = 9; // Дней в периоде
var period = 3; // Как часто я ем протеин (раз в три дня)
var workDayAmount = 200; // Количество протеина в будние
var weekendAmount = 100; // Количество протеина в выходные
var total = 0;
for (var i = 1; i <= days; i++) {
if (i % period === 0) {
total += workDayAmount;
if (i % 7 === 6 || i % 7 === 0) {
total -= workDayAmount;
total += weekendAmount;
}
}
}
var days = 9; // Дней в периоде
var period = 3; // Как часто я ем протеин (раз в три дня)
var workDayAmount = 200; // Количество протеина в будние
var weekendAmount = 100; // Количество протеина в выходные
var total = 0;
for(var i = 1; i <= days; i++) {
if(i % period === 0) {
total += workDayAmount;
if(i % 7 == 6 || i % 7 == 0) {
total -= weekendAmount;
}
}
}
var days = 9; // Дней в периоде
var period = 3; // Как часто я ем протеин (раз в три дня)
var workDayAmount = 200; // Количество протеина в будние
var weekendAmount = 100; // Количество протеина в выходные
var total = 0;
for (var i = period; i <= days; i +=period) {
if (i%7 === 6 || i%7 === 0) {
total +=weekendAmount;
} else {
total +=workDayAmount;
}
}
В своем решении я указывал в for, что i = 3. На мой взгляд, так решение не изменится, если в условии period больше не будет равен 3. Но для решения этой задачи… Впрочем, жто мой вариант:
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 === 6 || i%7 === 0) {
total += weekendAmount;
} else {
total += workDayAmount;
}
}
var days = 25; // Дней в периоде
var period = 3; // Как часто я ем протеин (раз в три дня)
var workDayAmount = 200; // Количество протеина в будние
var weekendAmount = 100; // Количество протеина в выходные
var weeks = Math.floor(days/7);
var total=0;
for (var i=period; i<=days; i+=period) {
for (var j = 0; j<=weeks; j++) {
if ((i+7)%7==6 ||i%7==0) {
total+=weekendAmount;
}
else {total+=workDayAmount;
}break
}
}
Господи, какой же ужас я написал…но он работает!)))
Приветствую) У меня была ошибка из-за этого, полностью не проходил тест, оказалось причина именно в %7 === 6; - вместо этого я указал %6 === 0;
В подсказке к заданию было объяснение:
Для определения дня недели тоже поможет % : номер дня в периоде делим на 7 , в остатке > получаем номер дня в неделе . Для воскресенья остаток будет равен 0 . Например, поделим > 15 по счёту день в периоде на 7 , в остатке получится 1 . Значит это понедельник.
if (i%7 === 6 || i%7 === 0)
В это коде i%7 === 0 - это воскресенье, так как он 7-й день в недели
А i%7 === 6 - дает остаток 6, а 6-й день недели у нас суббота.
А в условие к задачи было сказано, что нужно в выходные дни, то есть в субботу (6) и в воскресенье (7) сумму протеина указать 100, в 2 раза меньше от суммы протеина в будние.
var days = 456; // Дней в периоде
var period = 2; // Как часто я ем протеин (раз в три дня)
var workDayAmount = 200; // Количество протеина в будние
var weekendAmount = 100; // Количество протеина в выходные
var daysCount = 0;
var total = 0;
while (daysCount < days) {
daysCount++;
if (daysCount % period === 0) {
if (daysCount % 7 === 6 || daysCount % 7 === 0) {
total += weekendAmount;
} else {
total += workDayAmount;
}
}
}
var days = 9; // Дней в периоде
var period = 3; // Как часто я ем протеин (раз в три дня)
var workDayAmount = 200; // Количество протеина в будние
var weekendAmount = 100; // Количество протеина в выходные
var total = 0;
var dayOfWeek = 1; // День недели
for (var i = 1; i <= days; i++) {
if (i % period == 0) {
ВАЖНО! Возможно, об этом говорилось в теории, но я не уверен: оказывается оператор “взятие остатка %”, если число слева от него меньше числа справа от него возвращает число слева от оператора, а не остаток от деления. Например
1 % 2 // 1
-2 % 3 // -2
А то я все никак не мог понять почему выполняется условие i % 7 === 6 для i = 6, то есть для первой субботы.
Вашу мысль я уловил, но вы дали неверное определение: “Операция находит число, которое не делится на 2 без остатка. На этом вычисления заканчиваются…”. Например, 5 не делится на 2 без остатка (любое нечетное число не делится на 2 без остатка) по вашему определению операция должна остановиться.
То определение которое дал я более точно: “если число слева от него (оператора) меньше числа справа от него (то оператор) возвращает число слева от оператора, а не остаток от деления”.
Ваше определение тоже нельзя посчитать верным, так как “число слева от оператора”, которое будет ответом, является остатком от деления, а в определении этот факт отрицается.
Правильно будет так: “при делении меньшего числа на большее остатком от деления будет само это число”.