задача
Учитывая два натуральных числа, выведите количество переносов, необходимое для сложения их в длинное сложение в базе 10.
Примеры
¹¹¹ <-- carries
999
+ 1
----
1000
Требуется три переноса.
¹
348
+ 91
----
439
Необходим один перенос
Testcases
999, 1 -> 3
398, 91 -> 1
348, 51 -> 0
348, 52 -> 2
5, 15 -> 1
999, 999 -> 3
505, 505 -> 2
счет
Это код-гольф . Кратчайший ответ в байтах побеждает. Применяются стандартные лазейки .
code-golf
arithmetic
Дрянная Монахиня
источник
источник
190192, 90909
(имеет разрыв в переносках).9+9
дает вам18
, но сумма цифр,9+9-10+1
потому что есть перенос.repr
добавлениемL
чисел выше2**63-1
?Ответы:
Mathematica,
4639 байтвход
-7 байт из JungHwan
источник
JavaScript (ES6), 50 байт
Исправленапроблема с украденным у овса решениемобъяснение
Продолжу объяснение
источник
348 , 52
должно быть2
C (gcc) , 65 байт
Попробуйте онлайн!
источник
Желе ,
13 12 119 байт-1 байт, портируя математический ответ Jenny_mathy .
-2 больше байтов при лучшей игре в гольф: p
Смотрите набор тестов .
Как?
Мое 12-байтовое решение ...
Монадическая ссылка, принимающая пару целых чисел и возвращающая число переносов в виде целого числа.
Хотя, возможно, есть более короткий путь!Там было!Попробуйте онлайн! или посмотрите набор тестов .
Как
источник
D
S
Python , 48 байт
Попробуйте онлайн!
Для каждого значения места
m=1, 10, 100, ..., 10**99
проверяется, есть ли перенос в этом месте. Проверка переполненияa%m+b%m>=m
сокращена до~a%m<b%m
.Более хороший 45-байтовый вариант, где вместо этого плавает
a
иb
сдвигается внизк сожалению, сталкивается с проблемами точности поплавка.
источник
a+b<m
качестве вашего условия завершения?<=
дольше.1e99and
противноJavaScript (ES6),
5345 байтСэкономил 1 байт, добавив дополнительную итерацию без изменений для переносов на 1-е место. Сохранено 7 байтов путем присвоения проверки переноса @ xnor. У меня также была более элегантная 45-байтовая версия, но она страдает от погрешности с плавающей точкой; это будет прекрасно работать в переводе на язык с точной десятичной арифметикой:
источник
Python 2 , 55 байт
Попробуйте онлайн!
источник
05AB1E ,
1110 байтПопробуйте онлайн!
источник
|DO‚€SOÆ9÷
для 10 байтов.Нейм , 10 байт
Объяснение:
Попытайся!
Альтернативное решение, также 10 байтов:
Объяснение:
Попытайся!
источник
PHP> = 7.1, 81 байт
-2 Б удаления
|0
В этом случае цикл работает до$i
ISINF
Тестовые случаи
источник
$i
становитсяINF
?1.0E+309
это первоеINF
значение Попробуйте онлайн!Braingolf , 20 байтов
Попробуйте онлайн!
Использует тот же метод, что и все остальные.
Мог бы сохранить байт или 2, если бы у меня было предвидение, позволяющее
d
использовать жадный модификатор, тогда я мог бы заменитьd<d
на «&d
ну хорошо», в следующий раз.объяснение
источник