Практические задачи 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
0
+1
0
+1
0
+1
0
+1
0

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *