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

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

Статья из группы Архив info.javarush
участников
Кухня(); Задание N4. - 1 Правила [Одномерные массивы] 4. Дана последовательность действительных чисел a1, a2, ..., an. Выяснить, будет ли она возрастающей.
Комментарии (18)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
timurnav
Уровень 21
7 октября 2015, 14:45
public static boolean method2(int[] array) {
        int prev = Integer.MIN_VALUE;
        for (int n : array)
            if(n <= prev) return false;
        return true;
    }
RabenokDmitry
Уровень 21
5 февраля 2015, 00:22
public static int[] findEvenNumbers(int[] array) {
        int[] result = new int[0];
        if (array.length == 0) {
            throw new IllegalArgumentException("Массив нулевой длины!");
        }
        for (int i = 0; i < array.length; i++) {
            if (array[i] % 2 == 0 && array[i] > 0) {
                result = Arrays.copyOf(result, result.length + 1);
                result[result.length - 1] = array[i];
            }
        }
        if (result.length != 0) {
            return result;
        } else {
            throw new IllegalArgumentException("В массиве нет четных элементов");
        }

    }


P.S. Предыдущий комментарий прошу удалить, так как там нарисовался лишний тег:)
RabenokDmitry
Уровень 21
4 февраля 2015, 23:57
<code>public static boolean isIncreaseSequence(int[] array) {
        if (array.length < 2)
            throw new IllegalArgumentException("Длина массива меньше двух значений");
        for (int i = 1; i < array.length; i++) {
            if (array[i] > array[i - 1])
                continue;
            else
                return false;
        }
        return true;

    }
terranum
Уровень 28
21 августа 2014, 22:24
private static boolean isStrictlyIncreasingSequence(double[] arr)
    {
        if (arr.length < 2)
            throw new IllegalArgumentException("Bad arguments");    //Выполняем свою часть договора.
        for (int i = 1; i < arr.length; i++)
            if (arr[i - 1] >= arr[i])   //Шаг влево, шаг на месте - расстрел.
                return false;
        return true;
    }

    private static boolean isNonDecreasingSequence(double[] arr)
    {
        if (arr.length < 2)
            throw new IllegalArgumentException("Bad arguments");    //Выполняем свою часть договора.
        int i = 0;
        while (++i < arr.length)    //Тот же for только сбоку:)
            if (arr[i - 1] > arr[i])    //Жмем на курок в случае если предыдущий элемент больше.
                return false;
        return true;
    }

Если подытожить…
На счет того что double не важно не соглашусь, смысл в том что это может вылиться в плохую привычку, и вряд ли за такое отношение к делу, тебя кто-то по спине похлопает… Ничего личного, все ошибаются, но если завтра будешь писать движок для кардиостимулятора такой int может стоить кому-то жизни. Короче, мораль: тяжело в учении легко в бою. :)
Docktor91
Уровень 40
20 августа 2014, 16:02

public static boolean isSortedByMinToMax(int[] arr)
{
    for (int i = 0;i < arr.length;i++)
    {
        if (i + 1 == arr.length)
            return true;
        if (arr[i+1] < arr[i])
            return false;
    }
    return false;
} 
terranum
Уровень 28
20 августа 2014, 21:37
Дана последовательность действительных чисел.
Является ли последовательность {0,0,0} возрастающей?
Docktor91
Уровень 40
20 августа 2014, 21:41
ну да))
Artem
Уровень 22
20 августа 2014, 21:44
Если правильно понял, то
<code>if ( a1 - a2 > 0 ) return false //убывающая
if ( a1 - a2 < 0 ) return true //возврастающая</code>
при необходимости заменить на arr[0] или arr.get(0)
Docktor91
Уровень 40
20 августа 2014, 21:45
<code>public static boolean isSortedByMinToMax(double[] arr)
{
    for (int i = 0;i < arr.length;i++)
    {
        if (i + 1 == arr.length)
            return true;
        if (arr[i+1] <= arr[i])
            return false;
    }
    return false;
}</code>
terranum
Уровень 28
20 августа 2014, 21:57
Стоит глянуть сюда: ВОЗРАСТАЮЩАЯ ПОСЛЕДОВАТЕЛЬНОСТЬ. И прийти к соглашению. :)
Artem
Уровень 22
20 августа 2014, 21:59
Действительно всё проще
if(a1 < a2) return false
else true
Voronblack
Уровень 17
20 августа 2014, 23:12
(a1 < a2) должно возвращать true. Попробуй реализовать для проверки последовательности, а не для двух чисел, сделаешь оптимальнее чем Docktor91 , от меня + к карме =)
Artem
Уровень 22
20 августа 2014, 23:19
За кармой не гонюсь, чисто спортивный интерес :)
Да, true, спасибо ;)
Добавить цикл for и получится как у Доктора91.
Может можно компактнее, но сейчас занят, нет времени подумать.

По логике вещей, то
if(arra[0] < array[array.length-1]) return true;
else return false;
Artem
Уровень 22
20 августа 2014, 23:19
По логике вещей, то
if(arra[0] < array[array.length-1]) return true;
else return false;
Voronblack
Уровень 17
20 августа 2014, 23:56
Я тоже тут из-за спортивного интереса и поучится чему то, что на лекциях не встретишь =)
arra и array это разные массивы или опечатка?
Если опечатка то последовательность
int[] arr = {1,3,2};
программа выдаст true, хотя последовательность убывающая.
Artem
Уровень 22
21 августа 2014, 00:08
Опечатка.
Да, натупил с определением возрастающей последовательности.
тогда так:
public static boolean test(int[] arr) {
        for(int i = 0; i<arr.length-1; i++) {
            if(arr[i] > arr[i+1]) {
                return false;
            }
        }
        return true;
    }
Docktor91
Уровень 40
21 августа 2014, 02:23
Ну сказали с действительными числами это раз, а второе, если массив new double[0] то вернет тру
Artem
Уровень 22
21 августа 2014, 02:33
На счет double по сути не важно.
А вот, что вернет true — верно.
В любом случае задача решена, кухню можно закрывать :)