X



Написать комментарий





НОВАЯ ТРАДИЦИЯ


Задание первого батлла:
Написать класс, который генерирует и выводит 20 строк длины 10, причем первые 4 символа - цифры, следующие два символы - заглавные буквы английского алфавита, следующие 4 символа - нули или единицы, причем одна единица точно присутствует.
Предусмотреть проверку неповторяемости генерируемых строк .
Класс должен вывести эти строки и для каждой строки ее вес.
Вес подсчитывается как сумма первых четырех цифр, места двух букв в английском алфавите и числа в 10-ной системе счисления, полученного из бинарного выражения (последние 4 цифры).
Решение Зэева Фраймана

Комментарии :

Емельянов images/avatar/ya.png 2

Раскрою секрет. Вся "олимпиадность" задания заключалась в том, что бы участник догадался, что генерировать нужно именно "вес". И выводить полученные из "веса" строки. Тогда решение будет наиболее понятным и компактным.

Мое решение

Можно, конечно, еще сократить код. Но тогда "понятность" пропадет :)

Емельянов images/avatar/ya.png 2

Владимир Максович ! Не стоит беспокоится. Я же перед публикацией компилирую . Вот Ваш окончательный вариант :

Решение Зэева Фраймана

10-10-2019 17:16 Фрайман images/avatar/f.jpg 2 Приношу извинения модератору, И.Б. Емельянову -- послал по ошибке не окончательный, а промежуточный вариант решения)))
10-10-2019 16:50 Фрайман images/avatar/f.jpg 2 Верно замечено: в решении следует добавить строку boolean flag=false; после do, открывающего цикл проверки.
08-10-2019 19:13 Daniil058 3 Здравствуйте , в предложенном вами решении ,по моему мнению,есть
ошибка.Если генерируется строка равная строке, ранее находившейся в
массиве code  , то при проверке на равенство :  flag станет равным true ,
а внутри цикла do{}while(flag)  переменная flag не меняется на false ,
что приведет к бесконечному циклу.
Фрайман images/avatar/f.jpg 2

В этом году количество участников резко выросло, соответственно очень заметным стал и разброс в вариантах решения.
Мы, как организаторы проекта, составители заданий и проверяющие оные, устанавливаем и правила, по которым мы определяем оценку.
В частности, одним из обязательных условий мы считаем отсутствие перегруженности решения необязательными инструментами. В этом разница между, например, участием в хакатоне (код неважен, важен результат) и участием в олимпиаде (важен и код, и результат).
Отсюда и новая традиция: будем публиковать свои решения