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

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

Статья из группы Архив info.javarush
Кухня(); Задание N30. - 1 Правила [Одномерные массивы] 30. Даны целые положительные числа а1, а2, ..., an. Найти среди них те, которые являются квадратами некоторого числа m.
Комментарии (28)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
RabenokDmitry Уровень 21
16 февраля 2015
public static int[] searchSquareM(int[] array, int m) {
        m = m * m;
        int countSqrM = 0;
        for (int value : array) {
            if (value == m) {
                array[countSqrM] = value;
                countSqrM++;
            }
        }
        return Arrays.copyOf(array, countSqrM);
    }
Airon Уровень 34
13 сентября 2014
А зачем создавать внутри метода массив, если в конце все равно будете использовать Arrays.copyOf?
public static int[] findM2(int m, int... array) {
    int count = 0;
    for (int x : array)
        if (x * x == m)
            array[count++] = x;
    return Arrays.copyOf(array, count);
}
zeos Уровень 30
2 сентября 2014

    public static int[] findSquares(int[] array, int m)
    {
        int[] squaresIndex = new int[0];
        int mSquare = m * m;
        for (int i = 0; i < array.length; i++)
        {
            if (array[i] == mSquare)
            {
                int[] tempSquaresIndex = squaresIndex;
                squaresIndex = new int[squaresIndex.length + 1];
                for (int j = 0; j < tempSquaresIndex.length; j++)
                    squaresIndex[j] = tempSquaresIndex[j];
                squaresIndex[squaresIndex.length - 1] = i;
            }
        }
        return squaresIndex;
    }
Vash_the_Stampede Уровень 11
2 сентября 2014