Результаты конкурса «Рождественская распродажа»

#конкурс



Итак, прошли выходные и я подвожу итоги конкурса. Всего прислано 72% решений на Java и 28% на Kotlin.



1) Java. Лучшие решения состоят из 47 символов. Таких решений было 3:



• return r>n?0:gamesCount(r-d>m?r-d:m,d,m,n-r)+1; — @smallcreep

• return n<m?0:gamesCount(r-d<m?m:r-d,d,m,n-r)+1; — @maxim_ivanov

• return n<r?0:r>m?1+gamesCount(r-d,d,m,n-r):n/m; — @warmouse



При помощи рандомайзера, победителем является @maxim_ivanov!



Отдельно хочу отметить решение автора @aIexmoran. Если предыдущие решения используют рекурсию, то решение автора нет. Это самое короткое решение без рекурсии — 48 символов.

• int i=0;while(m<=r){n-=r;r-=d;i++;}return i+n/m;



2) Kotlin. Тут было немного сложнее определить победителя.

В правилах я не указывал о том, что нельзя добавлять свои imports. С одной стороны, самым коротким было решение из 53 символов. Но также было решение из 58 символов, которое было похожим на короткое, но без импорта java.lang.Math.*. Принял решение, что было бы несправедливым не отметить автора второго решения. Поэтому, я считаю, что самыми короткими решениями на Kotlin — это решения из 58 символов. Под критерии подходят 2 решения:



• return if(n<r)0 else gamesCount(Math.max(r-d,m),d,m,n-r)+1 — @R1KUD0

• return if(r<=n)1+gamesCount(Math.max(r-d,m),d,m,n-r)else 0 — @Svyat



При помощи рандомайзера, победителем является @R1KUD0!



Ссылки на видео с использование рандомайзера тут и тут.



Напоминаю, что победители получат книги Егора Бугаенко «Elegant Objects»



Большое спасибо всем участникам конкурса! Мне очень понравился подобный формат, поэтому мы обязательно к нему вернемся.



Как вам подобный формат?