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

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

Статья из группы Архив info.javarush
участников
Кухня(); Задание N8. - 1 Правила [Одномерные массивы] 8. Последовательность действительных чисел оканчивается нулем. Найти количество членов этой последовательности.
Комментарии (12)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
RabenokDmitry
Уровень 21
5 февраля 2015, 23:13
public static int getLengthBeforeZero(double... array) {
        if (array.length == 0)
            throw new IllegalArgumentException("Последовательность нулевой длины!");
        int count = 0;
        for (double value : array) {
            if (value != 0.0) {
                count++;
            } else break;
        }
        return count;

    }


Это принимая во внимание тот факт, что ноль в последовательности может быть только один:)
Docktor91
Уровень 40
23 августа 2014, 18:15
блин опять по вне компилятора писал… конечно эксепшн IllegalArgumentException
Voronblack
Уровень 17
23 августа 2014, 17:54
terranum не
Shif Alt L

а
Ctrl Alt L
terranum
Уровень 28
23 августа 2014, 18:03
Тфу)) Сейчас поправим, спасибо! :)
Docktor91
Уровень 40
23 августа 2014, 16:02
public static int getLength(double...mas)
{
    for(int i=0;i<mas.length;i++)
    {
        if (mas[i]==0)
            return i+1;
    }
    throw new InvalidArgumentException(«array not contains needed data»);
}
Voronblack
Уровень 17
23 августа 2014, 17:51
Я б немного изменил условие
if (mas[i] == 0 && i == mas.length - 1)

Ну и эксепшн
IllegalArgumentException
terranum
Уровень 28
23 августа 2014, 18:02
Мне кажется что аргумент имеет вид типа:
2.1, 3.3, 4.1, 0.0, 2.3, 2.0, 0.1

Следовательно вернем 4. Как думаешь?
Про Invalid-а почитать надо, чем они отличаются от Illegal-а?
terranum
Уровень 28
23 августа 2014, 18:11
Voronblack
Уровень 17
23 августа 2014, 18:23
Последовательность действительных чисел оканчивается нулем.
В моем понимании это выглядит так
{3.14, 2.59, 17.6, 0.0};

Нигде не сказано ни про то, что последовательность не может иметь больше чем один 0, так же в условии не указанно что в последовательности необходимо посчитать количество элементов до первого элемента со значением 0 или 0.0, хотя я могу и ошибаться =)
Docktor91
Уровень 40
23 августа 2014, 18:29
я сначала тоже думал так,
программа была бы тогда такая


public static int getLength(double...mas)
{
    return mas.length;
}

Voronblack
Уровень 17
23 августа 2014, 18:42
{3.14, 2.59, 17.6};

Но для такой последовательности она так же сработает, а не должна.
Docktor91
Уровень 40
23 августа 2014, 18:44
ну ты понял о чем я))