Практические задачи Java. Решаем задачи с Codewars.
Мы начинаем рубрику решения практических задач на Java с Codewars. Пишите ваши варианты решений в комментариях к посту.
@javatg – еще больше крутых задач разобрано в нашем канале по Java.
Задача:
В маленьком городке население р0 = 1000 в начале года. Население регулярно увеличивается на 2 процента в год, и более 50 новых жителей ежегодно переезжают в город. Сколько лет нужно городу, чтобы его население стало больше или равно p = 1200 жителей? В конце первого года будет: 1000 + 1000 * 0,02 + 50 => 1070 жителей В конце 2-го года будет: 1070 + 1070 * 0,02 + 50 => 1141 жителей (** количество жителей — целое число **) В конце 3-го года будет: 1141 + 1141 * 0,02 + 50 => 1213 На это потребуется целых 3 года. Более общие параметры: p0, процент, aug (жители приезжают или уезжают каждый год), p (население) функция nb_year должна возвращать n полных лет, необходимых для получения населения, большего или равного p. aug — целое число, процент — положительное число, p0 и p — положительные целые числа (> 0) Пример nb_year(1500, 5, 100, 5000) -> 15 nb_year(1500000, 2.5, 10000, 2000000) -> 10 Примечание: Не забудьте преобразовать результаты процент в вашей функции: если выводравен 2, вы должны преобразовать его в 0,02. Решение:
public class GrowthOfAPopulation {
public static int nbYear(int p0, double percent, int aug, int p) {
int years = 0;
int inhabitants = p0;
while(inhabitants < p)
{
inhabitants = (int)(inhabitants + (inhabitants * (float)(percent/100)) + aug);
years++;
}
return years;
}
}
+1
+1
+1
+1
+1