Напишите программу, которая, казалось бы, добавляет числа 2 и 2 и выводит 5. Это закулисный конкурс.
Ваша программа не может вывести никаких ошибок. Остерегайтесь дыр в памяти! Ввод необязателен.
Переопределение 2 + 2 как 5 не очень креативно! Не думай дважды, попробуй что-нибудь еще.
echo "2+2=5";
Ответы:
Ява
Отражение - это действительно правильный путь злоупотребления Java ... но вам нужно пойти глубже, чем просто настроить некоторые значения.
Выход:
Объяснение:
Предупреждение: выполнение этого в реальном коде сделает людей очень несчастными.
Демонстрация кода на ideone .
источник
Integer[] array = (Integer[]) c.get(cache); fisherYatesShuffle(array);
Представьте, сколько вещей сломается ...Haskell
Я просто люблю, как вы можете бросить что-нибудь в GHCI, и это полностью катится с этим.
источник
let 2+2=5 in 5+5
? ಠ_ಠNon-exhaustive patterns in function +
- я определяю новую функцию (+) здесь, и если я подключу что-то, что не так,2+2
это приведет к ошибке, потому что я никогда не определял, что должно произойти в этом случае.С
Довольно дешевый трюк, но я уверен, что поймаю большинство из вас.
Попробуй здесь
источник
GolfScript
Печать
5
.источник
Ява
Всегда нужно округлять двойники, ребята
Выход:
Объяснение:
источник
Math.ceil(two + two); // round just in case
Я вижу, что вы там сделалиtwo
. Производственный класс JavaTwo two = Two.two.two();
с Two.two существо типа TwoFactory.BBC BASIC
РЕДАКТИРОВАТЬ: Для Андреа Фолдс и Squeamish Ossifrage, более убедительная версия с использованием другого переводчика: http://sourceforge.net/projects/napoleonbrandy/
Исходное изображение с помощью эмулятора по адресу http://bbcbasic.co.uk/bbcwin/bbcwin.html . (с немного другим кодом) можно увидеть в истории редактирования.
источник
2+3=5
и2+2=5'
VDU 23,52,126,96,124,6,6,102,60,0
Brainfuck
Выход:
Попробуй это здесь .
Я знаю, что это может показаться немного простым, но я старался быть креативным, как это предлагалось в оригинальном посте.
источник
+++++.
вы можете рисовать что угодно.удар
Так как это конкурс популярности , я думаю, что я должен использовать многословный метод ...
Для людей, которые не знают Bash:
$((...expr...))
это синтаксис для оценки арифметических выражений.$(bc<<<...expr...)
делает то же самое, используяbc
калькулятор командной строки.Выход
объяснение
источник
15
вместо16
строки 4. К счастью, это все еще работало из-заbc
округления((v = v * 5))
или((v *= 5))
+=
это.v=2
аv+=2
): кому - то не знаком с Баш переменной обработки, что будет эквивалентно2+2
, но это на самом деле"2"+"2"
, то есть"22"
. другие комментарии в коде являются только неправильными из-за этого. Я знаю, не все находят это смешнымпитон
Вдохновленный ответом Java:
Более запутанная версия
За 2 + 2
Как уже упоминалось, 2 + 2 может быть довольно скучным; так что вот немного чище, мультиплатформенный, многоширок код для бессмысленного злоупотребления.
Запуск с Python 2.7 ... игнорируйте эту строку в конце. Работает в Windows 64-bit и Ubuntu 32-bit, две системы, к которым у меня есть легкий доступ.
Неудивительно, что мы можем нарушить ассоциативное свойство сложения, где ( a + b ) + c = a + ( b + c ), как видно в 1-й и 2-й
1+2+3
строках, но необъяснимым образом мы также нарушаем коммутативное свойство (где a + b = b + a ; 2-я и 3-я строки). Интересно, интерпретатор Python просто игнорирует лишние скобки вокруг выражений сложения?источник
exec('\x66\x72\x6f\x6d\x20\x63\x74\x79\ \x70\x65\x73\x20\x69\x6d\x70\x6f\ \x72\x74\x20\x63\x5f\x69\x6e\x74\ \x38\x3b\x20\x69\x6d\x70\x6f\x72\ \x74\x20\x73\x74\x72\x75\x63\x74\ \x3b\x20\x63\x5f\x69\x6e\x74\x38\ \x2e\x66\x72\x6f\x6d\x5f\x61\x64\ \x64\x72\x65\x73\x73\x28\x69\x64\ \x28\x34\x29\x20\x2b\x20\x73\x74\ \x72\x75\x63\x74\x2e\x63\x61\x6c\ \x63\x73\x69\x7a\x65\x28\x27\x50\ \x50\x27\x29\x29\x2e\x76\x61\x6c\ \x75\x65\x3d\x35')
Это модифицированная первая версия. Я сделал это, чтобы добавить его в $ PYTHONSTARTUP в / etc / profile в качестве красной команды на соревнованиях по хакерству.JavaScript:
Проверьте это на http://jsfiddle.net/qhRJY/
источник
JavaScript
Вы можете увидеть это на другом калькуляторе здесь .
источник
PHP
Который производит:
источник
PHP
пример:$a=2;echo "2+2=".$a++ + $a++;
JavaScript
источник
=
вместо этого==
, легко увидеть и откровенно скучно.=
только в качестве назначения, но оператор сравнения (например, Pascal, SQL, VB)C #
источник
;
последующим после него, что было совершенно преднамеренным, поскольку я использовал пустой цикл для перемещения курсора. Я случайно удалил точку с запятой, все взорвалось, и я не мог понять, почему.Опасно украшать ваш Javascript искусством ASCII.
источник
--
оператор был приемлемым, поскольку он должен с ошибкойInvalid left-hand side expression in prefix operation
; однако я понял, что между ними есть пробельные символы.удар
Выход:
Вот еще один:
источник
set a to {1, 2, 3, 4, 5, 6, 7, 8}
item 4 of a
zsh
использует массивы с 1 индексом (и$arr[0]
просто не установлен или не определен или что-то в этом роде), если не установленаKSH_ARRAYS
опция, в этом случае массивы с 0 индексами.Perl
источник
р
выход:
5
источник
Ява
выход:
Вероятно, работает на любом языке, который использует тот же тип двойных чисел.
источник
_2_56 + _2_56 = _5_12
), но более вероятно, что вы имеете в виду256.000000000000_2_ + 256.000000000000_2_ = 512.000000000000_5_
(примечание: подчеркивание используется для "полужирного" цифр.Befunge
Это написано в Befunge, но разработано так, чтобы выглядеть как Python.
При запуске (с правильным переводчиком) программа напечатает
5
.Объяснение:
источник
JavaScript
Код:
Выход:
Вы можете проверить это самостоятельно на своей консоли или проверить эту скрипку
источник
U+0431
, - почти 6!C (Linux, gcc 4.7.3)
Печатает 2 + 2 = 5
Так а = 2, верно?
источник
Фортран 77
источник
2=3
питон
Код печатает 5, который является правильным ответом для этой задачи.
Редактировать: вот альтернативная версия, которая добавляет целые числа, а не строковые двойки.
источник
~eval(`a`)
вместо просто~a
?int()
функции и делатьeval()
работу, если ввод представляет собой строковое целое число :)Рубин
Побочные эффекты этого даже хуже, чем версия Java.
источник
Рубин
Ruby имеет первоклассные среды. Это значит много вещей. Это также означает, что многое можно сделать, что ... может быть, не следует.
Выход этого:
Если вы хотите больше узнать о радостях и опасностях этого, то Ruby Conf 2011 Keeping Ruby Reasonable и прочтите первоклассные среды из блога Abstract Heresies.
источник
class Fixnum; def +(n) 5 end end; 2 + 2 # => 5
class Fixnum; alias_method :orig_plus, :+; protected :orig_plus; def +(n) self == 2 && n == 2 ? 5 : self.orig_plus(n) end end
Схема
источник
2+2
не так, как вы делаете дополнение в LISP!((((2))(()()))()()(()((((+))))()(((()(())((((2)))))()))(())))
.C #
Для кого-то незнакомого это будет выглядеть так, как будто я получаю диапазон, начинающийся и заканчивающийся на 2. На самом деле, он начинается с 2 и идет для двух чисел. Так что 2 + 3 = 5.
источник
{ 2 }
, не так ли?Enumerable.Range
не берет начало и конец, он требует начала и количества (элементов, которые будут перечислены).F #
Давайте поместим в ФСИ следующее утверждение:
Выход:
источник
С
5
Не слишком хорошо скрыты, я боюсь. Не работает с оптимизацией.источник