Задача Задача [0] - Премиум на один месяц

Ну и кто победитель?
 

Выйграли:
Java-man - премиум на 1 месяц.
Первый вариант - красивый.
Код:
public class Test
{
    public static void main(String[] args)
    {
        Optional<String> string = IntStream.rangeClosed(1, 100)
                .mapToObj(i -> i % 15 == 0 ? "mmo-develop.ru" : String.valueOf(i))
                .map(i -> parseInt(i, 1) % 3 == 0 ? "mmo-" : i)
                .map(i -> parseInt(i, 1) % 5 == 0 ? "develop.ru" : i)
                .reduce((a, b) -> a + System.lineSeparator() + b);
        System.out.println(string.get());
    }

    public static int parseInt(String number, int defaultVal)
    {
        try
        {
            return Integer.parseInt(number);
        }
        catch (NumberFormatException e)
        {
            return defaultVal;
        }
    }
}

Второй вариант - короткий. Естественно я его выкладываю в максимально читабельном варианте, так как я не дебил. А так его можно сложить в одну строку.
Код:
public class Test
{
    public static void main(String[] args)
    {
        Optional<String> string = IntStream.rangeClosed(1, 100)
                .mapToObj(i -> (i % 15 == 0)
                        ? "mmo-develop.ru"
                        : (i % 3 == 0)
                        ? "mmo-"
                        : (i % 5 == 0)
                        ? "develop.ru"
                        : String.valueOf(i))
                .reduce((a, b) -> a + System.lineSeparator() + b);
        System.out.println(string.get());
    }
}
zcxv - премиум 2 недели.
Вывод используется один раз с final String переменной :Wahaha:
Код:
    public static void main(String[] args) {
        MmoDevelop  obj = new MmoDevelop ();
        obj.version1();
    }

    final String string = "null".toString(); //disabling inlining
    public void version1() {
        Field f;
        try {
            f = MmoDevelop .class.getDeclaredField("string");
            f.setAccessible(true);
            Field modifiers = Field.class.getDeclaredField("modifiers");
            modifiers.setAccessible(true);
            modifiers.setInt(f, f.getModifiers() & ~Modifier.FINAL);
        } catch(Throwable e) {
            throw new RuntimeException(e);
        }

        final int num1 = 3;
        final int num2 = 5;
        final int num3 = 15;
        for(int i = 1; i <= 100; i++) {
            while(i % num1 == 0) {
                try {
                    f.set(this, "mmo");
                } catch(ReflectiveOperationException e) {
                    throw new RuntimeException(e);
                }
                break;
            }
            while(i % num2 == 0) {
                try {
                    f.set(this, "develop");
                } catch(ReflectiveOperationException e) {
                    throw new RuntimeException(e);
                }
                break;
            }
            while(i % num3 == 0) {
                try {
                    f.set(this, "mmo-develop.ru");
                } catch(ReflectiveOperationException e) {
                    throw new RuntimeException(e);
                }
                break;
            }
            while(i % num1 != 0 && i % num2 != 0) {
                try {
                    f.set(this, String.format("%d", i));
                } catch(ReflectiveOperationException e) {
                    throw new RuntimeException(e);
                }
                break;
            }
            System.out.println(string);
        }
    }
Иван - премиум 2 недели.
Код:
public class Mmodev {

    final String text;

    public Mmodev() {
        text = makeString();
    }

    public static void main(String[] args) {
        Mmodev m1 = new Mmodev();
        System.out.println(m1);
    }

    private String makeString() {
        StringBuilder stringBuilder = new StringBuilder();
        for (int i = 1; 100 >= i; i++) {
            stringBuilder.append((i % 5 == 0 && i % 3 == 0) ? "mmo-develop.ru\n" : (i % 5 == 0) ? "develop.ru\n" : (i % 3 == 0) ? "mmo-\n" : i + "\n");
        }
        return stringBuilder.toString();
    }

    @Override
    public String toString() {
        return text;
    }
}
 
Последнее редактирование:
Покажите хоть код всех участников, интересно же решение других
 
Up. Посты открыты для просмотра.
 
А по каким критериям оценивалось ?)) В теме есть более простые решения, но при этом победители все усложняют
 
Думал я наркоман, а тут вон оно как :D

Грац победителей))
 
Спасибо.
:):
 
Сразу нужно писать что нужно сделать самый медленный код.
Из всех победителей самый нормальный вариант у Иван
Не хватает еще использование JNI.
 
Сразу нужно писать что нужно сделать самый медленный код.
Из всех победителей самый нормальный вариант у Иван
Не хватает еще использование JNI.
Качество кода учитывается! Лучший из вариантов получит Премиум на один месяц.
И далеко не самый медленный код. Победителей не судят.
 
Значит у нас разные понятия "Качества".
Просто нужно было изначально писать что нужно не хорошее решение а "Нестандартное мышление".
Да и раздел называется "Java Академия" чему такой код научит новичков ?
 
Последнее редактирование:
У меня тоже бомбануло от такого вердикта но не потому что мой вариант не посчитали лучшим (хотя он сработает быстрее всех реализации), а лишь потому что один из вариантов стал причиной взрыва моих глазных капилляров.
+Награды были выданы тем у кого не было према.

PS: Соглашусь с Test, нужно было писать не 'Качество кода учитывается! ', а 'Выиграет не стандартный код без учета качества' так как качественным кодом можно назвать программу, которая отрабатывает минимальной промежуток времени без лишнего мусора, а тот код что попал в призеры далек от этого понятия.
Одна фраза привела к пукано бомбилову :)

PPS: Не парьтесь будут еще конкурсы, сам придумаю что то как будет время ;)
 
Ну вообще тут много непонятного.
Условие задачи : не корректно поставлено условие задачи.
- не описанно что должно быть с числами 15, 30 и т.д. ( по логике понятно что полное, что должно быть ммо-дев.ру, но все же)
- елсе нельзя, но как оказалось тернарные можно.....

А критерий "оригинальности кода" как по мне, не совсем уместен.
Как мудреный, сложный, возможно и более долгий вариант может быть лучше?

Я только учусь ( 4 курс) и нам все время объясняли:
Код нужно строить понятно, не нужно придумывать сложные алгоритмы для решения елементарных задач.
По минимуму использовать ресурсы.

Варианты победителей, как по мне мудреные. есть менее, есть более.

От Мангола был комент, мол почти вверно, но есть подвох. ( к примеру Сссра )
Задача у него не решена что ли? операторы иф не использовал. выводит 1 строку. минимум ненужного кода.

Почему меня так задела эта тема, участвую в олимпиадах по программированию и у меня вот второй тур 12 числа....
Если бы там была такая задача ( пофиг на то что не корректное условие) то уверен что половину вашего "оригинального" кода отбросили бы.
Почему? Чаще всего есть ограничение : время выполнения, кол-во операцый, кол-во памяти под переменные.
 

    qwerty123

    Баллов: 1
    Без комментариев
Ну вообще тут много непонятного.
Условие задачи : не корректно поставлено условие задачи.
- не описанно что должно быть с числами 15, 30 и т.д. ( по логике понятно что полное, что должно быть ммо-дев.ру, но все же)
- елсе нельзя, но как оказалось тернарные можно.....

А критерий "оригинальности кода" как по мне, не совсем уместен.
Как мудреный, сложный, возможно и более долгий вариант может быть лучше?

Я только учусь ( 4 курс) и нам все время объясняли:
Код нужно строить понятно, не нужно придумывать сложные алгоритмы для решения елементарных задач.
По минимуму использовать ресурсы.

Варианты победителей, как по мне мудреные. есть менее, есть более.

От Мангола был комент, мол почти вверно, но есть подвох. ( к примеру Сссра )
Задача у него не решена что ли? операторы иф не использовал. выводит 1 строку. минимум ненужного кода.

Почему меня так задела эта тема, участвую в олимпиадах по программированию и у меня вот второй тур 12 числа....
Если бы там была такая задача ( пофиг на то что не корректное условие) то уверен что половину вашего "оригинального" кода отбросили бы.
Почему? Чаще всего есть ограничение : время выполнения, кол-во операцый, кол-во памяти под переменные.
Ну вот ты будешь устраиваться на работу к работодателю и ты ему скажешь условие не корректно поставлено? Ну вот ты сказал, что учишься в олимпиадных заданиях так же присутствует подвох. Пример не совсем удачный CCCP сразу реализовал верно.
 
Я удивлен что мое решение со стримами является оригинальным. :) И я естественно не буду иметь ничего против, если мой приз отдадут кому-то другому. Но не из-за кода, а из-за того, что мы с Манголом состоим в одной команде. Насчет того, что мой код долгий: я уверен что второй вариант при добавлении параллельности ничуть не уступит вашим однопоточным итерациям. А при увеличении интервала чисел и вовсе будет быстрее.
 
Я удивлен что мое решение со стримами является оригинальным. :) И я естественно не буду иметь ничего против, если мой приз отдадут кому-то другому. Но не из-за кода, а из-за того, что мы с Манголом состоим в одной команде. Насчет того, что мой код долгий: я уверен что второй вариант при добавлении параллельности ничуть не уступит вашим однопоточным итерациям. А при увеличении интервала чисел и вовсе будет быстрее.
Распределял награды я и написал манголу как распределились места, что бы он опубликовал
 
Я удивлен что мое решение со стримами является оригинальным. :) И я естественно не буду иметь ничего против, если мой приз отдадут кому-то другому. Но не из-за кода, а из-за того, что мы с Манголом состоим в одной команде. Насчет того, что мой код долгий: я уверен что второй вариант при добавлении параллельности ничуть не уступит вашим однопоточным итерациям. А при увеличении интервала чисел и вовсе будет быстрее.
У меня бомбануло не из за тебя :)
Мангол в курсе :D
 

Похожие темы

Назад
Сверху Снизу