Вызов
Вычислите странную сумму двух натуральных чисел (также называемых лунным сложением):
Для заданных A=... a2 a1 a0
и B=... b2 b1 b0
двух натуральных чисел, записанных в десятичной базе, странная сумма определяется на основе максимальной операции следующим образом:
A+B=... max(a2,b2) max(a1,b1) max(a0,b0)
... a2 a1 a0
+ ... b2 b1 b0
----------------------------------------
... max(a2,b2) max(a1,b1) max(a0,b0)
вход
Два натуральных числа
Все следующее разрешено:
- Струны с нулевой подкладкой (одинаковой длины)
- Строки с отступом влево
- Строки с пробелами в правой части
- Массив из двух строк
- 2D симметричный массив символов
Выход
А натуральные числа
пример
1999+2018-->2999
17210+701-->17711
32+17-->37
308+250-->358
308+25-->328
правила
- Ввод и вывод могут быть предоставлены в любом удобном формате (выберите наиболее подходящий формат для вашего языка / решения).
- Нет необходимости обрабатывать отрицательные значения или неверный ввод
- Либо полная программа или функция приемлемы. Если функция, вы можете вернуть вывод, а не распечатать его.
- Если возможно, укажите ссылку на среду онлайн-тестирования, чтобы другие люди могли опробовать ваш код!
- Стандартные лазейки запрещены.
- Это код-гольф, поэтому применяются все обычные правила игры в гольф, и выигрывает самый короткий код (в байтах).
code-golf
math
arithmetic
mdahmoune
источник
источник
Ответы:
Python 2 , 20 байт
Попробуйте онлайн!
Ввод / вывод в виде 0-предварительно заполненных списков цифр.
источник
Желе , 1 байт
Попробуйте онлайн!
Ввод / вывод в виде 0-предварительно заполненных списков цифр.
источник
R ,
6865 байтПопробуйте онлайн!
Ввод в виде целых чисел, вывод в виде списка цифр.
Если бы списки цифр были дополнены нулями, то просто
pmax
хватило бы.источник
MATL , 2 байта
Формат ввода: 2D-массив символов из двух строк, каждая из которых соответствует строке, с более коротким числом, дополненным пробелами. Например
который в MATL определяется как
Попробуйте онлайн!
объяснение
источник
Python 2 ,
736056 байтПопробуйте онлайн!
Принимает ввод в виде двух строк и возвращает список цифр
Альтернатива:
Принимает ввод как два целых числа; тот же выход
Python 2 ,
6059 байтПопробуйте онлайн!
источник
Java 10,
7857 байтВводится в виде двух массивов символов с пробелами.
Изменяет первый входной массив вместо того, чтобы возвращать новый, чтобы сохранить 21 байт (благодаря @ OlivierGrégoire ).
Попробуйте онлайн.
Объяснение:
источник
a->b->{for(int i=a.length;i-->0;)if(a[i]<b[i])a[i]=b[i];}
( 57 байт ). Повторно использовать вa
качестве вывода, чтобы получить много, много байтов.J ,
1412 байт-2 байта благодаря Ионе
Попробуйте онлайн!
Ввод и вывод в виде списка (ов) цифр
источник
(>./@,:)&.|.
. Попробуйте онлайн!Japt,
987 байтПринимает ввод как массив массивов цифр.
Попытайся
Если в качестве входных данных разрешено использовать массивы с нулевой подкладкой (в настоящее время это относится к «удобному формату», но я подозреваю, что это не является целью претендента), то это может быть 3 байта.
Попытайся
источник
y
? Я не знал этого. Вот еще один способ , также 8 байтов.'
. Я не знаю, сэкономит ли это когда-нибудь байты, но это определенно круто.Perl 6 , 37 байт
Попробуйте онлайн!
Вводит в виде списка списков цифр.
источник
05AB1E ,
9 65 байт-3 благодаря Эмигне
-1 благодаря Шегги
Принимает ввод как список списков цифр
Попробуйте онлайн! или попробуйте все тестовые случаи
источник
€R
может бытьí
. Кроме того, я не думаю, что вам нужно,€þ
какnumber > space
€þ
и это не сработало, но теперь это работает ...J
в конце?Perl 6 , 15 байт
Попробуйте онлайн!
Принимает ввод как список массивов символов, дополненных пробелами, хотя для этой задачи слабый формат ввода делает его довольно скучным. Кроме того, вот программа, которая принимает список из двух целых чисел:
Perl 6 , 41 байт
Попробуйте онлайн!
Если вы не возражаете против огромного количества пробелов, вы также можете удалить
+
спереди.Объяснение:
источник
Haskell , 40 байт
Ввод / вывод в виде строк, попробуйте онлайн!
объяснение
Функция
p
заменяет каждый символ пробелом, используяp b++a
иp a++b
, следовательно, одинаковую длину. Таким образом, мы можем использоватьzipWith
без потери каких-либо элементов, использованиеmax
с ним работает, потому что(пробел) имеет более низкую кодовую точку, чем любой из символов
['0'..'9']
.источник
JavaScript (ES6),
5149 байтNB. Этот ответ был опубликован до того, как свободные форматы ввода / вывода были явно разрешены. С заполненными нулями массивами цифр это может быть сделано в 33 байтах (но гораздо менее интересно, ИМХО).
Принимает ввод как два целых числа. Возвращает целое число.
Попробуйте онлайн!
комментарии
Альтернативная версия
Тот же формат ввода / вывода.
Попробуйте онлайн!
источник
Tcl , 156 байт
Попробуйте онлайн!
Не очень в гольфе, но я должен был попробовать. Будет ли это гольф позже!
источник
Пакет, 120 байт
Принимает ввод как параметры командной строки. 188-байтовая версия работает с целыми числами произвольной длины:
Принимает участие в STDIN.
источник
прут , 125 байт
Когда я увидел этот вызов, я подумал: «Позвольте мне использовать язык шаблонов! Конечно, это хорошо подходит»
Я был неправ ... так неправильно .... ... Но было весело!
Для этого необходимо, чтобы для "strict_variables" было установлено значение
false
(значение по умолчанию).Чтобы использовать этот макрос, вы можете сделать так:
Должен отобразиться 167.
Вы можете попробовать это по адресу https://twigfiddle.com/rg0biy
(«strict_variables» отключен, он включен по умолчанию на веб-сайте)
источник
Шелуха , 5 байт
Удобно принимает ввод / вывод в виде списка цифр, попробуйте онлайн или проверьте все!
объяснение
источник
Stax , 5 байт
Запустите и отладьте его
Эта программа принимает входные данные в виде массива строк.
Запустите этот
Это первый раз, когда я увидел использование инструкции наложения «в дикой природе».
источник
SNOBOL4 (CSNOBOL4) , 153 байта
Попробуйте онлайн!
источник
Pyth, 5 байт
Принимает ввод как массив из двух строк с пробелами.
Попробуй это здесь .
источник
Japt , 4 байта
Входные данные принимаются в виде массива из двух числовых массивов с 0 дополнениями.
Попробуйте онлайн!
источник
Цейлон, 55/99
С 0- или пробелами строк одинаковой длины (возвращая итерируемые символы):
С 0- или пробелами (возвращая String):
Со строками разной длины (возвращая строку):
источник
C # (.NET Core) , 57 байт
-1 байт при добавлении карри
Попробуйте онлайн
источник
Рубин , 25 байт
Попробуйте онлайн!
Предварительно дополненный список бла-бла. (Хотя это немного похоже на обман.)
источник
Сетчатка 0.8.2 , 39 байт
Попробуйте онлайн! Ссылка включает тестовый набор. Предыдущая 45-байтовая версия Retina 1 допускает незаполненные строки:
Попробуйте онлайн! Ссылка включает тестовый набор. Объяснение:
Дополните оба значения одинаковой длиной. (Только Retina 1. Есть способы подражать этому в Retina 0.8.2, но они не очень хороши).
Транспонировать значения.
Сортировка каждой пары в порядке.
Удалите все младшие цифры и лишние новые строки.
источник
Древесный уголь , 8 байт
Попробуйте онлайн! Ссылка на подробную версию кода. Объяснение:
10-байтовая версия «добавляет» любое количество дополняемых строк:
Попробуйте онлайн! Ссылка на подробную версию кода. Предыдущая 14-байтовая версия принимает незаполненные строки:
Попробуйте онлайн! Ссылка на подробную версию кода. Объяснение:
17-байтовая версия «добавляет» любое количество строк:
Попробуйте онлайн! Ссылка на подробную версию кода.
источник
Mathematica 50 байтов
а = 543; б = 791;
(* 793 *)
источник