10 9 8 7 6 5 4 3 2 1… Печатать 2016

12

Как побочный результат моей задачи в Puzzling , ваша цель - выход 2016.

Правила:

  • Вы должны включить числа 10 9 8 7 6 5 4 3 2 1в этом порядке. Они могут быть использованы как отдельные целые числа или объединены вместе (например 1098), но 10они не могут быть разделены на 1и 0- между цифрами не должно быть символов. Обратите внимание, что в некоторых языках 10может фактически не представлять целочисленный литерал 10, что является приемлемым.
  • Ваш код не должен содержать никаких других чисел или предопределенных Tчисловых переменных или констант (поэтому в Pyth это запрещено, поскольку это числовая константа).
  • Вы должны рассчитать, 2016 используя цифры. Простой вывод 2016без выполнения каких-либо операций над требуемыми числами (например, путем декодирования кодированной строки, состоящей только из буквенных символов) не допускается. Вывод 2016в куски (например 20, затем 16) также не допускается; у вас должен быть один выход, состоящий из числового значения 2016.
  • Действительный ответ с наименьшим количеством байтов выигрывает.
rybo111
источник
3
@nicael Я уверен, что решение головоломки уже сделано. У нас было несколько таких проблем «операторы вставки для решения уравнения», но их исключительно сложно найти.
Мартин Эндер
1
Предыдущая версия (2) была более интересной на самом деле. Новый просто печатает строку, расчет уже сделан в вашем загадочном вопросе ...
Nicael
1
Всего несколько вопросов , основанных на том, что я могу видеть на текущий вопрос: 1) Можно ли вычислить 20и 16и распечатать их один за другим , или же расчетная потребность номер , чтобы быть 2016 год перед печатью? 2) Разрешены ли функции? 3) Допускается ли объединение цифр? например 1098(я предполагаю, что да, в предыдущих комментариях, но только для подтверждения) 4) Означает ли «вычисление 2016 года с использованием целых чисел», что у нас никогда не может быть плавающих значений где-либо на промежуточном этапе? Например, я могу квадратный корень из числа и округлить вниз?
Sp3000
1
5) Что произойдет, если у меня есть язык, где «10» не рассматривается как число десять, а скорее как один, за которым следует ноль, и не было никакого способа обойти это? Является ли такой язык дисквалифицированным? (пример языка: Befunge) 6) Можем ли мы использовать предопределенную числовую переменную вместо 10, например T987654321?
Sp3000
@ Sp3000 1 № 2 № 3 Да. 4 Поплавки в порядке, если вы не нарушаете никаких других правил. 5 10должны быть включены, так что вам нужно как-то с этим справиться. 6 Пока 10появляется раньше T.
rybo111

Ответы:

22

Желе , 17 15 14 байт

109876:54+3_21

Попробуйте онлайн!

Как это устроено

109876:54+3_21

109876            Initialize the left argument as 109876.
      :54         Perform integer division by 54, yielding 2034.
         +3       Add 3, yielding 2037.
           _21    Subtract 21, yielding 2016.
Деннис
источник
8

Гексагония, 61 байт

Не собираюсь побеждать, но я просто хотел бросить вызов в Гексагонии.

Это использует другой метод, чем другие ответы (гораздо хуже). Он принимает некоторые факторы 2016 года (2,3,6,7,8) и умножает их все вместе.

уменьшенная:

\109.8/7}_=\"6<}{>...$_5_4/*!@...../}3.."2\/="*=}<*...$1>"*"/

Unminified:

    \ 1 0 9 .
   8 / 7 } _ =
  \ " 6 < } { >
 . . . $ _ 5 _ 4
/ * ! @ . . . . .
 / } 3 . . " 2 \
  / = " * = } <
   * . . . $ 1
    > " * " /

Объяснение в ближайшее время;

синий
источник
5
« Объяснение скоро»; я думаю, что у нас другое понимание «скоро». ; P
Кевин Круйссен
1
@KevinCruijssen Ой, я полностью забыл об этом. ... А теперь я не понимаю, как это работает. Отлично.
Синий,
5

Pyth, 16 байт

+/109876 54-3 21

Делает целочисленное деление, затем добавляет (3-21).

Попробуй это здесь .

lirtosiast
источник
4

TI-BASIC, 17 15 байт

int(109876/54-√(321

Это использует метод @ nicael.

17 байтов:

10+9*8-7+654*3-21

Это решение от Puzzling можно напрямую перевести на TI-BASIC.

lirtosiast
источник
1
Также действует в Japt и, возможно, в некоторых других.
ETHproductions
1
Также работает в PowerShell и Mathematica (Wolfram), и я хотел бы представить много-много других. И, вероятно, работает в десятки больше с тривиальными модификациями.
AdmBorkBork
Прекрасное решение для полиглота
TanMath
Если вы хотите использовать другие языки, я удалю вики моего сообщества.
Эддисон Крамп
3

Japt, 17 16 байт

Â(109876/54-321q

Я ненавижу это 17. Вероятно, найдет другое решение. YAYZ.

Объяснение:

  • 321q квадратный корень из 321.
  • ~~ этажей номер.

Попробуйте онлайн!

nicael
источник
Â== ~~:-)
ETHproductions
109876/54-321¬f15 :-D
ETHproductions
@ Эт, но е не работает, нет?
Никель
Это должно быть исправлено. Но переводчик сейчас не работает, сейчас я его верну.
ETHproductions
109876/54-321q)fсейчас работает. Другое предложение не делает.
ETHproductions
3

до н.э., 14

109876/54+3-21

Ничего захватывающего здесь - заимствует из других ответов.

Цифровая травма
источник
1
Эквивалент DC 109876 54/3+21-pоценивает 16, но не гарантирует собственный ответ.
Тоби Спейт
2

Haskell, 31 байт

[10,9*8*7+const 6 5..]!!4+3*2*1

Не самый короткий, 10+9*8-7+654*3-21как видно из других ответов, работает и в Haskell, но что-то другое.

Это создает список, начинающийся с 10и 9*8*7+6 = 510, поэтому смещение относится 500к следующим элементам. Весь список есть [10,510,1010,1510,2010,2510 ...]. Мы выбираем 4thэлемент (на основе индекса 0), т.е. 2010и добавляем 3*2*1 = 6. Вуаля.

Я использую, const 6 5 = 6чтобы избавиться от того, 5что не нужно.

Ними
источник
2

Python 2, 20 байт

print 109876/54+3-21

Опять тот же скучный 2016.(740). Используется тот факт, что если в вашем выражении нет десятичного числа, возвращается целое число.

Эрик Outgolfer
источник
1

> <> (рыба), 18 байт

10987**r65r4*n;321

объяснения:

умножает 9 8 и 7 вместе, чтобы получить 504, переворачивает стек и переворачивает его снова непосредственно перед добавлением 4, затем умножает 504 и 4, чтобы получить 2016. Затем печатает число и завершает программу до последних 3 чисел (я мог сделать это после тоже без разницы, если это имеет значение по правилам).

torcado
источник
1

Математика ++ , 17 байт

_(109876/54)+3-21

На самом деле, это печатает 2016.0. Но на самом деле нет возможности напечатать точную строку 2016на этом языке.

17-байтовое решение TI-BASIC также будет работать здесь.

SuperJedi224
источник
1

Полиглот, 17 байт

10+9*8-7+654*3-21

Этот код, впервые использованный в ответе TI-BASIC Томаса Ква , также работает в:

  • AppleScript (полная программа)
  • bc (полная программа)
  • Math ++ (выражение или полная программа)
  • Mathematica (функция, следовательно, не действительна)
  • Powershell (полная программа)
  • Japt (полная программа)
  • JavaScript (консольный ввод, следовательно, недопустим) Требуется вторая проверка
  • Perl 5 (функция, следовательно, не действительна). Требуется вторая проверка
  • Haskell (функция, следовательно, не действительна)
  • Python REPL (выражение, поэтому для получения выходных данных требуется среда REPL)
VoteToClose
источник
1
И какой в ​​этом смысл?
Никель
@nicael Я - собираюсь - планирую (если Томас Ква не захочет добавить и другие ответы к нему), чтобы добавить все ответы, которые включают этот ответ (кроме TI-BASIC), которые я смогу найти. Помечено как Сообщество, чтобы другие могли внести свой вклад.
Эддисон Крамп
1
Почему замечания «функция, следовательно, не действительны»? Функции разрешены по умолчанию.
Ними
5
Я не знаю о других языках, но не 10+9*8-7+654*3-21является ни JavaScript, ни функцией Perl.
Деннис
1
@ Sp3000: Ох уж эти недействительные изменения правил ...
Ними
1

𝔼𝕊𝕄𝕚𝕟 2, 15 символов / 17 байтов

109876/54+3-21⍜

Try it here (Firefox only).

Переводится в round(109876/54+3-21).

Спасибо @Dennis за сохранение 2 байта!

Mama Fun Roll
источник
1

Java 7, 31 байт

int c(){return 109876/54+3-21;}

Скучный порт из других ответов, из которых я считаю, что ответ @Dennis 'Jelly был первым.

Кевин Круйссен
источник
1

PHP, 27 байт

<?=~~(109876/54+3-21);

(22 байта) было слишком скучно,

поэтому я использовал от 10 до 9 как отдельные числа:

<?=10*(9-8+7-6),5+4-3+2<<1;

другие решения, в основном с небольшими читами:

30: <?=10**(9+8-7-6)/5+4*3+(2<<1);
30: <?=10*trim(9*8,7),6+5+4+3-2*1;
29: <?=10*trim(9*8,76),5*4-3-2+1;
31: <?=10*trim(9*8,765),4+(3*2<<1);
31: <?=10*trim(9*8,765),4*3+(2<<1);
32: <?=ceil(1098*76/54)+321+ord(~j);
33: <?=(10<<9)/876*543/M_PI*2-M_E&~1;
Titus
источник
0

Млечный Путь 1.6.5 , 28 25 байт

10+9*(8)7;^*6*5/4*3/2*A!1

объяснение

10+9*                      ` perform 10*9 (leaves 90 at TOS)
     (8)7;^*               ` get rid of 8 and multiply the TOS by 7
            6*5/4*3/2*A    ` perform TOS*6/5*4/3*2 (leaves 2016 at TOS)
                       !   ` output the TOS
                        1  ` push 1 to the stack
Зак Гейтс
источник
0

C 37 байт

main(){printf("%d",109876/54+3-21);}

Та же тема, что и у многих присутствующих.

LambdaBeta
источник
0

JavaScript (ES6), 21 байт

f=

_=>~~(109876/54+3-21)

console.log(f())

Если «обратный отсчет» дошел до 0, это можно сделать за 19 байтов.

f=
_=>109876/54+3-21|0
console.log(f())

И, учитывая, что сейчас 2017 год, это также может быть сделано в 21 байте:

f=
_=>-~(109876/54+3-21)
console.log(f());

мохнатый
источник