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.
  • Действительный ответ с наименьшим количеством байтов выигрывает.

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

Ответы:



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).

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


4

TI-BASIC, 17 15 байт

int(109876/54-√(321

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

17 байтов:

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

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


1
Также действует в Japt и, возможно, в некоторых других.
ETHproductions

1
Также работает в PowerShell и Mathematica (Wolfram), и я хотел бы представить много-много других. И, вероятно, работает в десятки больше с тривиальными модификациями.
AdmBorkBork

Прекрасное решение для полиглота
TanMath

Если вы хотите использовать другие языки, я удалю вики моего сообщества.
Эддисон Крамп

3

Japt, 17 16 байт

Â(109876/54-321q

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

Объяснение:

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

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


Â== ~~:-)
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). Используется тот факт, что если в вашем выражении нет десятичного числа, возвращается целое число.


1

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

10987**r65r4*n;321

объяснения:

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


1

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

_(109876/54)+3-21

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

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


1

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

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

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

  • AppleScript (полная программа)
  • bc (полная программа)
  • Math ++ (выражение или полная программа)
  • Mathematica (функция, следовательно, не действительна)
  • Powershell (полная программа)
  • Japt (полная программа)
  • JavaScript (консольный ввод, следовательно, недопустим) Требуется вторая проверка
  • Perl 5 (функция, следовательно, не действительна). Требуется вторая проверка
  • Haskell (функция, следовательно, не действительна)
  • Python REPL (выражение, поэтому для получения выходных данных требуется среда REPL)

1
И какой в ​​этом смысл?
Никель

@nicael Я - собираюсь - планирую (если Томас Ква не захочет добавить и другие ответы к нему), чтобы добавить все ответы, которые включают этот ответ (кроме TI-BASIC), которые я смогу найти. Помечено как Сообщество, чтобы другие могли внести свой вклад.
Эддисон Крамп

1
Почему замечания «функция, следовательно, не действительны»? Функции разрешены по умолчанию.
Ними

5
Я не знаю о других языках, но не 10+9*8-7+654*3-21является ни JavaScript, ни функцией Perl.
Деннис

1
@ Sp3000: Ох уж эти недействительные изменения правил ...
Ними



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;

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);}

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



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());

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.