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

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

Статья из группы Архив info.javarush
участников
Кухня(); Задание N52 - 1 Правила [Одномерные массивы] 52. В одномерном массиве с четным количеством элементов (2N) находятся координаты N точек плоскости. Они располагаются в следующем порядке: x1, y1, х2, y2, x3, y3, и т.д. Определить кольцо с центром в начале координат, которое содержит все точки. Кухня(); Задание N52 - 2 Не для слабонервных
Комментарии (5)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Docktor91
Уровень 40
17 сентября 2014, 14:18
public static double getMinRadius(double... p)
{
    if (p == null || p.length % 2 == 1 || p.length == 0)
        throw new IllegalArgumentException("No-no-no");
    double res = 0;
    for (int i = 0; i < p.length; i += 2)
        res = res < (p[i] * p[i] + p[i + 1] * p[i + 1]) ? (p[i] * p[i] + p[i + 1] * p[i + 1]) : res;
    return Math.sqrt(res);
}

public static double getCircleLength(double...p)
{
    return Math.PI * 2 * getMinRadius(p);
}
aiv
Уровень 27
18 сентября 2014, 11:53
Вроде, кольцо определяется двумя параметрами — внутренний и внешний радиусы?
Так что, наверное так:

    /**
     * Определение кольца, содержащего все точки.
     * @param p Массив координат точек.
     * @return Массив из двух значений, 
     *          с индексом 0 - внутренний радиус кольца,
     *          с индексом 1 - внешний радиус кольца.
     */
    public static double[] getRing(double... p)
    {
        if (p == null || p.length % 2 == 1 || p.length == 0)
            throw new IllegalArgumentException("No-no-no");
        double[] res = {Double.MAX_VALUE, Double.MIN_VALUE};
        for (int i = 0; i < p.length; i += 2)
        {
            double rad = p[i] * p[i] + p[i + 1] * p[i + 1];
            res[0] = rad < res[0] ? rad : res[0];
            res[1] = rad > res[1] ? rad : res[1];
        }
        res[0] = Math.sqrt(res[0]);
        res[1] = Math.sqrt(res[1]);
        return res;
    }
Docktor91
Уровень 40
18 сентября 2014, 12:00
может и так, я чет подумал, что это окружность)
aiv
Уровень 27
18 сентября 2014, 12:03
Я тоже еще в 51 задаче, подумал, что это окружность. Поэтому никак не мог сообразить, как все точки могут на ней находиться. Забываются со временем элементарные понятия из школьного курса :-(
Docktor91
Уровень 40
18 сентября 2014, 12:06
учитывая что в школе я хреново учился, это вдвойне печально…