Задача:
Я знаю, что мы все можем добавить два числа коротким путем, используя +
. Ваша задача состоит в том, чтобы создать самый длинный код, который вы можете добавить два числа ввода.
Правила:
- Весь код должен быть по теме (не заполняйте его кодом без добавления, чтобы добавить длину)
- Количество указывается в символах, но не учитывает символы табуляции, пробелы или переводы строк.
- Не используйте слишком длинные имена переменных
- Это боулинг , поэтому выигрывает самый длинный ответ!
number
code-bowling
Доктор
источник
источник
a + b - b + b...
? Это было бы бесконечноa + b/2
, а неa + b
(это похоже на сериал Гранди ).Ответы:
C ++ БОЛЬШЕ, ЧЕМ 3x10 ^ + 618 (БЕЗ БЕЛОГО ПРОСТРАНСТВА, табуляции или новых строк)
Этот код занял больше математики, чем логики! в подсчете количества байтов
КОРОТКИЙ НОМЕР
ВЫХОД
В самом деле ? шутки в сторону! Вы хотите увидеть вывод? на написание этого кода уйдут недели, а на компиляцию - месяцы!
источник
x
илиy
не целое число?C - 2 739 341 494 945 868 415 002 (без пробелов)
Грубая сила для победы. Обрабатывает только целые числа и сохраняет поведение переполнения. Вот фрагмент кода:
Это, очевидно, большой способ для загрузки здесь или в Pastebin, так что вот программа, которая сгенерирует исходный код функции (направляет вывод в файл - при условии, что у вас есть место на диске):
Я вздрагиваю от того, как долго будет работать функция long-long ...
РЕДАКТИРОВАТЬ: пересчитать счет (должен быть правильным), чтобы дать точный счет. Я предпочитаю думать, что я играл в гольф на 10 ² символов, когда убрал пробел.
источник
else if
.LEFT_SIDE_NEG_2147483648 = -2147483648
) ... рекомендуется использовать описательные имена вместо жестко заданных значений, вы знаете.С ++, 3573
3573, тогда становилось скучно, но я могу продолжать добавлять еще слой абстракции.
источник
Ruby, 29048 (может быть настолько высоким, насколько это необходимо, но я должен был получить его под лимитом персонажа для постов)
И где я взял эту огромную нить, спросите вы? Это программа, которую я использовал для ее генерации:
Yay для "сжатия"! :П
Как вы можете видеть, я установил ограничение длины строки на 29000, что чуть ниже предела длины для сообщений Stack Exchange, но я мог сделать это так, как мне хотелось бы.
источник
PHP - 1299
Правила не запрещают использовать внешние библиотеки, поэтому вот код, использующий SimplePHPEasyPlus :
источник
C (через Perl) - 170,141,183,381,241,069,554,076,045,499,751,727,125 (то есть 1,70141183381241e + 38) для 32-битных входов без знака
Моя философия заключается в том, что при внедрении сложения с нуля неразумно полагаться на предварительно вычисленные источники, такие как 2, 3, 7 или 65535! 0 и 1 должны быть единственными константами, которые нам нужны, верно?
Поэтому я не вычисляю заранее какие-либо константы - я вычисляю их на лету, как показано ниже! Для поддержки 8-разрядного целочисленного ввода со знаком вам потребуется исходный код длиной 20 461 843 непробельных символа. Для реализации 32-разрядного целочисленного ввода со знаком вам понадобится исходный код длиной 1.70141183381241e + 38 ;-)
Готовы к небольшому фрагменту 8-разрядного целочисленного кода со знаком? Держи:
Обратите внимание, что этот код несколько сложен - я не говорю, например:
Не нужно проверять, равен ли x каждый раз единице, верно? Так что мой код гораздо эффективнее и лаконичнее, и делает это вместо этого:
Конечно, я мог бы расширить длину кода, изменив менее лаконичный метод =)
А вот исходный код, который я использовал для генерации этих чудовищ, но будьте осторожны - представление 24-битного целого в этом формате (33 МБ каждый) приводит к тому, что perl съедает более 1 ГБ памяти на моей машине. Если в вашем распоряжении более 512 ГБ памяти, вы можете попробовать и попробовать ее с 32-разрядными целыми числами =)
Вот так вот и все =)
источник
Ява - 2406 (3220 с пробелами)
Мы все знаем, что компьютеры хороши в обработке битов и не так хороши во всем остальном. Поэтому моя программа выполняет сложение, используя эффективное побитовое сложение!
источник
Ява -
309731759Не самая длинная, но может быть наиболее правдоподобная неправильная интерпретация.
редактировать: Упс, только что заметил, что это не код троллинг .
источник
for
цикл, чтобы сказать «повторить это на все биты входных шин». (Представьте себе язык с процедурным синтаксисом и функциональным исполнением ... где основным инструментом для его редактирования было высокопроцедурное представление в виде блок-схем ... что я могу сказать, это были ранние усилия.)Python 2.7 (добавив хороший способ)
кредит переходит на https://stackoverflow.com/questions/366706/bitwise-subtraction-in-python
источник
raw_input()
. Я намекал на ФП, что хорошей практикой является формулировка языка.источник
C # - 5395
Давайте сгенерируем Cil- код для добавления с использованием динамического метода. На самом деле я испускаю код, который в свою очередь испускает код для вызова целочисленного сложения. Функция
Add()
ниже создает динамический метод, который при запуске создает динамический метод для вызова сложения целых чисел.источник
{System.SystemException}: {"JIT Compiler encountered an internal limitation."}
Допустим, вы хотите, чтобы код был длиннее n символов. Следующий код намного длиннее.
источник
С
Не подходит для больших чисел, но может быть заменен этим
источник