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

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

Статья из группы Архив info.javarush
Кухня(); Задание N45 - 1 Правила [Одномерные массивы] 45. Дан массив, состоящий из n натуральных чисел. Образовать новый массив, элементами которого будут элементы исходного, оканчивающиеся на цифру k. Кухня(); Задание N45 - 2
Комментарии (10)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
aiv Уровень 27
16 сентября 2014
Еще можно так:

    public static int[] endsByK (int[] arr, int k){
        if (k < 0)
            return new int[0];

        int count = 0;

        for (int n : arr) {
            if (Math.abs(n) % 10 == k)
                count++;
        }

        int[] res = new int[count];
        count = 0;
        for (int n : arr) {
            if (Math.abs(n) % 10 == k)
                res[count++] = n;
        }

        return res;
    }
Airon Уровень 34
16 сентября 2014
<code>public static int[] arrayOfK(int k, int... array) {    
    int[] temp = new int[0];
    String sK = String.valueOf(k);
    for (int x : array) {
        String sX = String.valueOf(x);        
        if (sX.endsWith(sK)) {
            temp = Arrays.copyOf(temp, temp.length + 1);
            temp[temp.length - 1] = x;
        }
    }
    return temp;
}</code>
Насколько я пока понял, с обычными массивами будем работать редко, скорее использоваться будут списки, так как они быстрее всего. И утруждать код двумя циклами перебора одного и того же для задания длины не особо нужно. Если это не так, пожалуйста объясните или киньте какую нибудь авторитетную (конечно же на ваш взгляд) ссылку. Очень благодарен.
Kashey Уровень 11
12 сентября 2014
public static  int[] newArrayWithLastK (int[] array, int k) {
        if (k < 0) {
            System.out.print("k is " + k + ", k must be greater than 0!");
            return new int[0];
        }
        int count = 0;

        for (int i = 0; i < array.length; i++) {
            if (Integer.toString(array[i]).endsWith(Integer.toString(k))) {
                count++;
            }
        }
        System.out.println(count);

        int[] newArr = new int[count];
        count = 0;
        for (int i = 0; i < array.length; i++) {
            if (Integer.toString(array[i]).endsWith(Integer.toString(k))) {
                newArr[count++] = array[i];
            }
        }
        return newArr;
}
Vash_the_Stampede Уровень 11
10 сентября 2014
public static int[] solve(int[] arr, int k) {
    int n = arr.length;
    int count = 0;

    for (int i = 0; i < n; i++) {
        if (Integer.toString(i).endsWith(Integer.toString(k))) {
            count++;
        }
    }

    int[] res = new int[count];
    count = 0;
    for (int i = 0; i < n; i++) {
        if (Integer.toString(i).endsWith(Integer.toString(k))) {
            res[count++] = arr[i];
        }
    }

    return res;
}
Vash_the_Stampede Уровень 11
10 сентября 2014
очепятка в конце задания