Здравствуйте, уважаемые знатоки! У меня состоялся вопрос к испытанию [20/20] по “циклам”. Написал вот такой код:
var initialWeight = 7000; // Исходный вес в граммах
var targetWeight = 5000; // Желанный вес в граммах
var days = 0;
var percent = initialWeight / 100 * 5;
while (initialWeight > targetWeight) {
initialWeight -= percent;
days++;
}
console.log(days);
Поясню:
var day = 0 - отсчет начинаю с нуля, потому что первая итерация - будет первым днем.
var percent = initialWeight / 100 * 5 - математическая формула высчитывания процентов, в данном случае, проценты будут сложные, т.е. изменяться с каждой итерацией. Записал переменной для облегчения чтения кода.
- Цикл продолжается пока количество имеющихся грамм не станет меньше желаемых.
- Одновременно с этим отнимаем от имеющихся грамм процент с каждым циклом.
- С каждым циклом прибавляем день.
А теперь внимание вопрос, уважаемые знатоки:
Почему код проходит первую и вторую проверку, а третью нет (ожидаемое 7, получаемое 6), при этом удивительный факт, посчитав в ручную на калькуляторе я получил:
ПЕРВЫЙ ТЕСТ: Цикл заканчивается на показателе = 4887 (т.е. цикл отнимает от 5144 - 5% (~257))
ИТОГ: 4 дня.
ТРЕТИЙ ТЕСТ: Цикл заканчивается на показателе = 5145 (т.е. цикл НЕ отнимает от 5145 - 5% (~257))
ИТОГ: 6 дней вместо положенных 7-ми
Где я лажаю?))