Я только что попробовал игру под названием Couch 2048 .
(Примечание: вам следует посмотреть, чтобы лучше понять этот вопрос.)
Поскольку это было не очень интересно для меня, я спрашивал себя: «Сколько еще до 2048 года !?»
Это вдохновило меня на подачу заявки, потому что рассчитать ее не так просто, как я думал.
Ваша цель:
учитывая список шаров на диване, вы должны вывести, сколько шаров со значением 2 должно упасть с неба, чтобы можно было выиграть игру (достигнув 2048 шаров).
- Предположим, что ввод действителен.
- Предположим, игрок не будет бросать шары.
- Предположим, что шары, падающие с неба, всегда имеют значение 2, как я уже сказал.
- Допустимые примеры вывода: 3, "4", [5], ["6"]
Изменить:
я должен уточнить кое-что:
- Вы должны напечатать наименьшее необходимое количество секунд.
Тестовые случаи:
[2048] -> 0
Вы уже выиграли
[1024,1024] -> 0
Вам не нужно больше шаров, чтобы выиграть
[1024,512,256,128,64,32,16,8,4,2] -> 1
Один шар, необходимый для «активации цепочки»
[512] -> 768
[512,2] -> 767
[4,16,64] -> 982
Примечания :
я не являюсь носителем языка - скажите, заметили ли вы опечатку или какой-то неграмматический текст.
Если что-то неясно, спрашивайте в комментариях.
[4,16,64] -> 22
?2048
и разделить на2
- если это так, вы можете дважды проверить последний контрольный пример - если нет, пожалуйста, используйте его в качестве примера, чтобы объяснить, почему вывод 'т982
.Ответы:
Java 8, 17 байт
Порт @LuisFelipeDeJesusMunoz 'ответ JavaScript .
Попробуйте онлайн.
Объяснение:
источник
Brain-Flak , 72 байта
Попробуйте онлайн!
источник
Python 2 , 22 байта
Знаешь, я только что понял, что
4**5
это такая же длина, как1024
.Попробуйте онлайн!
источник
MathGolf ,
65 байтПервый ответ MathGolf. :)
Попробуйте онлайн или проверьте все контрольные примеры .
Объяснение:
источник
05AB1E , 5 байтов
Порт @LuisFelipeDeJesusMunoz 'ответ JavaScript .
Попробуйте онлайн или проверьте все контрольные примеры .
Объяснение:
источник
APL (Dyalog Unicode) , 10 байтов
Попробуйте онлайн!
источник
JavaScript (Node.js) , 25 байт
Основано на комментарии и ответе @Shaggys
-3 байта от @Arnauld = D
Попробуйте онлайн!
источник
J , 10 байт
Попробуйте онлайн!
Альтернатива:
J , 10 байт
Попробуйте онлайн!
источник
Рубин , 17 байт
Попробуйте онлайн!
источник
Католикон , 5 байт
Объяснение:
источник
TI-Basic, 8 байтов
источник
JavaScript, 28 байт
Попробуйте онлайн
источник
Желе ,
76 байтПопробуйте онлайн!
Объяснение:
-1 байт с использованием числа base-250
источник
Japt,
76 байтПопробуйте или проверьте все тесты
источник
perl -aE, 27 байт
Это читает строку с числами (разделенными пробелами)
STDIN
и записывает ответSTDOUT
.Что он делает, так это вычитает все числа из входных данных из 2048, а остаток делит на 2.
-a
Переключатель помещает в массив@F
(одно число на элемент). Если мы интерполируем массив в строку (что мы и делаем здесь), perl помещает значение$"
между элементами. Мало используемая переменная$:
будет по умолчанию\n-
; и поскольку пропуски между токенами игнорируются, в результате вычитаются все числа из 2048. Выполняетсяeval
вычисление.источник
JavaScript (Node.js) , 33 байта
Попробуйте онлайн!
Почему ты не делаешь дальше
[1024,1024,1024]
?источник
R , 17 байт
Попробуйте онлайн!
источник
TeaScript , 11 байт
Попробуйте онлайн!
источник
Stax , 6 байт
Запустите и отладьте его
источник
Perl 6 , 12 байт
Попробуйте онлайн!
Аноним Любая лямбда, которая берет список и возвращает число.
источник
AWK, 26 байт
Входные числа разделены новыми строками (т.е. по одному на строку)
источник
Нейм, 6 байт
Довольно новый для Нейма, но получил это работает
Объяснение:
Попробуйте онлайн!
источник
JAVA, 30 байтов
источник
RAD , 10 байт
Попробуйте онлайн!
источник
Clojure , 24 байта
Попробуйте онлайн!
источник
Haskell , 16 байт
Анонимная функция, принимает список и возвращает число с плавающей точкой.
Попробуйте онлайн!
источник
F #, 24 байта
1024 минус сумма, деленная на 2.
источник