Четвёртая программа: «Бешеная сушка»


#1

У меня вот так вышло:

var initialWeight = 6000; // Исходный вес в граммах
var targetWeight = 5000;  // Желанный вес в граммах
var days = 0;

while (initialWeight > targetWeight) {
    days++;
    initialWeight -= initialWeight * 0.05;
}

У кого-нибудь есть другие варианты? :slight_smile:


#2

как-то так, но совсем уж легко после протеинового коктейля.

var days = 0;
while (targetWeight < initialWeight){
initialWeight = initialWeight / 1.05;
days++;
}
console.log(days);


#3

Другой вариант, строчка со счетчиком покороче: initialWeight *= 0.95;. Особо не придумаешь в коде на 3 строчки :grin: А так после протеинового коктейля действительно слишком легко :slightly_smiling_face:


#4

var initialWeight = 6000; // Исходный вес в граммах
var targetWeight = 5000; // Желанный вес в граммах
var days = 0;

while (initialWeight > targetWeight) {
initialWeight *= 0.95;
days++;
console.log(‘Work Bitch!’);
}
console.log(‘Nice. For ’ + days + ’ days.’);


#5

Из условий задачи не понятно, какие проценты используются при подсчёте: простые или сложные?


#6

У тебя, кстати, код неверный: разделить на 1.05 != умножить на 0.95


#7

Я решал максимально наглядно для себя, как сделать короче, не могу сообразить.

var initialWeight = 6000; // Исходный вес в граммах
var targetWeight = 5000;  // Желанный вес в граммах

var lostInDay = 0;        // сколько грамм входит в 5%
var days = 0;             // продолжительность тренировки в днях

while (initialWeight > targetWeight){
    lostInDay = (initialWeight / 100) * 5;      // в первую итерацию, 360гр = 5% от 6000
    initialWeight = initialWeight - lostInDay;  // обновляем вес
    days++;                                     // добавляем день
}

#8

Я решил через for сделать, показалось короче)

for (var days = 0; initialWeight > targetWeight; days ++) {
initialWeight = initialWeight - initialWeight * 0.05;
}
console.log('Через ’ + days + ’ дня ваш вес составит: ’ + initialWeight + ‘, и вы добьётесь желанного результата!’);


#9

Без использования цикла:

var initialWeight = 6000; // Исходный вес в граммах
var targetWeight = 5000; // Желанный вес в граммах

days = Math.ceil(Math.log(targetWeight / initialWeight) / Math.log(1 - 0.05));


#10

var initialWeight = 6000; // Исходный вес в граммах
var targetWeight = 5000; // Желанный вес в граммах
var days = 0;
var training = initialWeight * 0.05;
while (initialWeight > targetWeight) {
days++;
initialWeight -= training;
}

Почему этот код не совсем верно срабатывает? В то же время, если на место training я ставлю initialWeight * 0.05, все правильно?


#11

Потому что от initialWeight у вас всегда отнимается одно и тоже значение, а должно отниматься 5% от текущего веса


#12
var initialWeight = 6000; // Исходный вес в граммах
var targetWeight = 5000;  // Желанный вес в граммах
var days = 0;

while (initialWeight > targetWeight) {
  var WeightDay = (initialWeight / 100) * 5; // сбрасываемые 5% граммов в день
  initialWeight-= WeightDay; 
  days++;
}

#13

Помогите, пожалуйста разобраться. Вот мой код Бешеной сушки

var initialWeight = 6000; // Исходный вес в граммах
var targetWeight = 5000; // Желанный вес в граммах

var currentWeight = initialWeight;
var days = 0;

while(currentWeight > targetWeight){

currentWeight = currentWeight - (initialWeight / 100 *5);
days++;
console.log("day = " + days );
}
Не могу пройти Третий тест. Начальный вес 7000 гр., хотим похудеть до 5000 гр. Ожидаю ответ 7 дней.
Я не могу понять почему у них 7 дней? У меня 6 выходит.
У нас ведь котик теряет 5% от Начальной массы. Тоесть в данном тесте он теряет 350гр каждый день тренеровок.

1дн = 7000 -350гр = 6650гр
2дн = 6650гр - 350гр = 6300гр
3дн = 6300гр - 350гр = 5950гр
4дн = 5950гр - 350гр = 5600гр
5дн= 5600гр - 350гр = 5250гр
6дн= 5200гр - 350гр =4900гр.
Всё стоп. хватит худеть.
Я не могу понять почему в тесте написано 7дней, котик ведь каждый день тренировки худеет на одинаковое количество грамм ?


"Бешеная сушка" - бага проверки?
#14

Не совсем всё так, как вы пишете. Котик каждый раз должен худеть на 5% от своего нового веса. То есть, на 350г он худеет только в первый день, а на следующий 5% должно считаться уже от 6650.


#15

И тут возникает вопрос, почему именно так ?
Я просто почитал сообщения про решение данной задачи выше моего, и не понял почему это взято так?
Мне эта задача напомнила как я ложил деньги на депозитный счёт под 15% годовых. Так вот через год мне предлагали к моей сумме денег прибавлять всё ту же сумму от 15%. Хоть и суммарный объем денег увеличился.


#16

Есть разные виды депозитов. В курсе “Функции” вы будете рассчитывать два варианта: с капитализацией и без. Так вот, котик худеет “с капитализацией”) Когда дойдете, то поймете, что я имею в виду.


#17

Спасибо, хотя яснее не стало. Следую здоровой логике котик каждый день тренировок должен сбрасывать одинаковое количество калорий в независимости от массы. Почему жирный кот будет худеть медленнее чем худой кот, для меня стереться загадкой.(именно скорость похудения)


#18

Во общем у меня вот так вот получилось:

Код

var initialWeight = 6000; // Исходный вес в граммах
var targetWeight = 5000; // Желанный вес в граммах
var days = 0;
var weightPerDay = 0;

while (initialWeight > targetWeight) {
weightPerDay = initialWeight / 100 * 5;
initialWeight -= weightPerDay;
days++;
}

console.log (‘Осталось заниматься ’ + days + ’ дней.’);


#19

Задание необходимо переделать, поскольку похудение кота от нового веса а не от начального совершенно неочевидно. Больше того, сейчас задание составлено неграмотно и предполагает целью кота именно похудение от стольки-то до стольки-то (а если быть еще более точным, только до стольки-то). По легенде у него там соревнования или что там, и есть некая мин. входная масса, как скажем у боксеров. И никому неважно, в т.ч. самим атлетам, в каком темпе они будут худеть - нет никакого линейного худения, всегда в один день будет худеть чуть больше или чуть меньше, главное чтобы к сроку похудел.


#20

var initialWeight = 7000; // Исходный вес в граммах
var targetWeight = 5000; // Желанный вес в граммах
var vaga = 0;
var days=0;

while (initialWeight > targetWeight){
vaga=initialWeight*5/100;
initialWeight=initialWeight-vaga;
days++;
console.log('Vaga now: ‘+initialWeight+’, current day: '+ days)
}