Что-то как-то странно... [20/20]


#1

Здравствуйте, уважаемые знатоки! У меня состоялся вопрос к испытанию [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 - математическая формула высчитывания процентов, в данном случае, проценты будут сложные, т.е. изменяться с каждой итерацией. Записал переменной для облегчения чтения кода.

  1. Цикл продолжается пока количество имеющихся грамм не станет меньше желаемых.
  2. Одновременно с этим отнимаем от имеющихся грамм процент с каждым циклом.
  3. С каждым циклом прибавляем день.

А теперь внимание вопрос, уважаемые знатоки:
Почему код проходит первую и вторую проверку, а третью нет (ожидаемое 7, получаемое 6), при этом удивительный факт, посчитав в ручную на калькуляторе я получил:
ПЕРВЫЙ ТЕСТ: Цикл заканчивается на показателе = 4887 (т.е. цикл отнимает от 5144 - 5% (~257))
ИТОГ: 4 дня.

ТРЕТИЙ ТЕСТ: Цикл заканчивается на показателе = 5145 (т.е. цикл НЕ отнимает от 5145 - 5% (~257))
ИТОГ: 6 дней вместо положенных 7-ми

Где я лажаю?))


#2


#3

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


#4

И в правду))) Запилил формулу внутрь цикла и все заработало) Спасибо огромнейшее Ineska!)