JavaRush/Java блог/Архив info.javarush/Кухня(); Задание N49
terranum
28 уровень

Кухня(); Задание N49

Статья из группы Архив info.javarush
участников
Кухня(); Задание N49 - 1 Правила [Одномерные массивы] 49. Напишите программу, входными данными которой является возраст n человек. Программа подсчитывает количество людей, возраст которых находится в интервале 10 лет, а именно: <..> человек имеет возраст в диапазоне 0 – 10 лет; <..> человек имеет возраст в диапазоне 10 – 20 лет и т.д.
Комментарии (9)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
aiv
Уровень 27
14 сентября 2014, 22:22
/**
     * Подсчет количества людей , возраст которых находится
     * в интервале 10 лет.
     * @param ages массив возрастов.
     * @return массив, индекс которого определяет диапазон
     *          возрастов 0 - [0-9], 1 - [10-19] и т.д., а
     *          значения - количество людей, возраст кото-
     *          рых попадает в этот диапазон.
     */
    public static int[] grouppingAges(int[] ages) {
        // Исходя из условий задачи входными данными
        // является возраст. Максимальный возраст
        // человека по данным статистики сейчас 122 года.
        // С небольшим запасом берем долгожителей до 150 лет.
        int[] periods = new int[15];

        if ((ages == null) || (ages.length == 0))
            return null;

        for (int age : ages) {
            periods[age / 10]++;
        }
        return periods;
    }
Docktor91
Уровень 40
14 сентября 2014, 22:27
те кто живут больше ста — читеры))
aiv
Уровень 27
14 сентября 2014, 22:32
Специально для решения залез, посмотрел:
Долгожители
;-)
terranum
Уровень 28
15 сентября 2014, 00:30
Я дико извеняюсь!

А кто сказал что они живы?
aiv
Уровень 27
15 сентября 2014, 08:17
Так в задаче не сказано, что они должны быть живы :-D
Docktor91
Уровень 40
14 сентября 2014, 22:01
public static void printAgeOfHumansGroupByTenYears(int... humanAges)
{
    int[] groupedAges = new int[10]; //0-100
    for (int age : humanAges)
        groupedAges[age / 10]++;
    int i = 0;
    for (int counts : groupedAges)
        System.out.println("<" + (i++ * 10) + "-" + (i * 10 - 1) + "> - " + counts);
}
aiv
Уровень 27
14 сентября 2014, 22:28
Шли по одному пути :-)
Только если выводить результат на экран, я бы добавил проверку количества на 0, чтобы не выводить нулевые результаты. Хотя это мое личное мнение, а авторы задачи может быть хотели видеть все диапазоны.
Docktor91
Уровень 40
14 сентября 2014, 23:02
если ребенок родился месяц назад, сколько ему лет?
aiv
Уровень 27
15 сентября 2014, 08:18
Я не про возраст, а про количество людей — «нулевые результаты», а не «нулевой возраст».
Проверка на 0 во втором цикле.