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

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

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

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

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

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

1 лайк

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

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

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

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

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

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

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дней, котик ведь каждый день тренировки худеет на одинаковое количество грамм ?

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

3 лайка

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

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

3 лайка

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

1 лайк

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

Код

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 + ’ дней.’);

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

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)
}

for (initialWeight=initialWeight; initialWeight > targetWeight; initialWeight=initialWeight*0.95 + days++);
{
console.log(‘Осталось заниматься ’ + days + ’ дней.’)
}

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

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

Мой вариант :lion:

Бешеная сушка
console.log('Программа "Бешеная сушка" by Nerealist');

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

console.log('Ваш вес: ' + initialWeight + ' грамм, Вы хотите похудеть до ' + targetWeight + ' грамм');

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

console.log('Вам понадобиться еще попотеть ' + days + ' дней, Сэр');

Мой вариант с условием:

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

while (targetWeight <= initialWeight) {
if (targetWeight == initialWeight && days <= 0) {
break;
} else {
initialWeight -= initialWeight / 100 * 5;
days++;
}
}
console.log(days);

“я ява погромист, я не умею считать в уме, сложные проценты какие-то аааа”
зачем вы указываете уже сокращенную форму расчета процента и вводите дополнительные переменные, я не очень понимаю. Это такие правила хорошего тона? А если будет не 5% а 4.85321093290123% ? я в голове такие суммы не умею решать и калькулятор продал, чтобы купить курсы по JS. ну такое себе.

моё рабочее
var initialWeight = 6000; 
var targetWeight = 5000;
var days = 0;
while (initialWeight > targetWeight) {
  initialWeight = initialWeight/100*(100-5);
  days++;
}
2 лайка

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

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

у меня так вот получилось.

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

while (initialWeight > targetWeight) {
if (initialWeight <= targetWeight) {
break;
}
initialWeight -= initialWeight/ 100 * 5; // или initialWeight * 0.05;
days++;
}
console.log('Через ’ + days + ’ дня(ей) ваш вес составит: ’ + Math.round(initialWeight) + ‘, и вы добьётесь желанного результата!’);