Всем привет, запутался в последовательности действий в коде, можете подсказать по данной задаче, как все это дело реализовать.
Условие.
В небольшом городе население p0 = 1000 в начале года. Население постоянно растет на 2 процента каждый год и еще 50 новый людей каждый год переезжают в город жить. Сколько лет необходимо городу, чтобы его население стало больше или равно p >= 1200 жителей?
В конце первого года: 1000 + 1000 * 0.02 + 50 => 1070 жителей.
В конце второго года: 1070 + 1070 * 0.02 + 50 => 1141 жителей (** число жителей всегда целое **).
В конце третьего года: 1141 + 1141 * 0.02 + 50 => 1213.
Итого понадобится 3 года.
Немного об аргументах:
p0 -население в начале года, целое число больше 0
процент, положительное число или с плавающей запятой
aug - количество жителей, которые покидают или пребывают в город, целое число
p - население, которое требуется достичь, целое число больше 0
Функция nbYear должна возвращать количество лет, которое потребуется для достижения населения больше или равно p.
const nbYear = (p0, procent, aug, p) => {
let count = 0;
let res = 0;
procent = procent / 100;
/*Напишу как я шел по этапно, а касательно цикла, пока p0 <= p,
мы прибавляем по p0++(допустим 50 жителей) при следующей итерации цикла.
Все же верно как я понимаю?*/
for (p0 > 0; p0 <= p; p0++) {
//тут происходят мат.действия по условию.
let res = ((p0 + p0) * procent) + aug;
//преобразуем результат в целое число
res = Math.floor(res);
//если результат больше p0, значит мы прибавляем счетчик
if (p0 < res) {
count++;
}
}
return count;
}
nbYear(1500, 5, 100, 5000) -> 15
nbYear(1500000, 2.5, 10000, 2000000) -> 10
Получаются 0, и вот тут уже затык, я понимаю, что где-то в условии походу есть косяк, но вот где и что пока не пойму.