Tarea
Dados dos enteros positivos, genera el número de acarreos necesarios para sumarlos en una suma larga en la base 10.
Ejemplos
¹¹¹ <-- carries
999
+ 1
----
1000
Se necesitan tres acarreos.
¹
348
+ 91
----
439
Se necesita un transporte.
Casos de prueba
999, 1 -> 3
398, 91 -> 1
348, 51 -> 0
348, 52 -> 2
5, 15 -> 1
999, 999 -> 3
505, 505 -> 2
Tanteo
Este es el código de golf . La respuesta más corta en bytes gana. Se aplican lagunas estándar .
code-golf
arithmetic
Monja permeable
fuente
fuente
190192, 90909
(tiene un descanso en los acarreos).9+9
te da18
, pero la suma de dígitos es9+9-10+1
porque hay un carry.repr
agregar unL
para los números anteriores2**63-1
?Respuestas:
Mathematica,
4639 bytesentrada
-7 bytes de JungHwan
fuente
JavaScript (ES6), 50 bytes
Solucionado elrobo de la solución de ovsExplicación
Llevar explicación
fuente
348 , 52
debería ser2
C (gcc) , 65 bytes
Pruébalo en línea!
fuente
Jalea ,
13 12 119 bytes-1 byte portando la respuesta matemática de Jenny_mathy .
-2 bytes más por un mejor golf: p
Ver el conjunto de pruebas .
¿Cómo?
Mi solución de 12 bytes ...
Un enlace monádico que toma un par de enteros y devuelve el número de acarreos como un entero.
¡Probablemente hay un camino más corto!¡Había!Pruébalo en línea! o ver el conjunto de pruebas .
Cómo
fuente
D
yS
...Python , 48 bytes
Pruébalo en línea!
Para cada valor posicional
m=1, 10, 100, ..., 10**99
, verifica si hay un carry en ese valor posicional. La verificación de desbordamientoa%m+b%m>=m
se acorta a~a%m<b%m
.Una variante más agradable de 45 bytes donde flota
a
y seb
desplaza hacia abajolamentablemente se encuentra con problemas de precisión de flotación.
fuente
a+b<m
como tu condición de terminación?<=
que sea más largo.1e99and
es asqueroso.JavaScript (ES6),
5345 bytesSe guardó 1 byte al agregar una iteración adicional de no hacer nada para los acarreos en el lugar de 1. Se ahorraron 7 bytes al apropiarse de la comprobación de transporte de @ xnor. También tenía una versión más elegante de 45 bytes, pero sufre de imprecisión de coma flotante; funcionaría muy bien traducido a un idioma con aritmética decimal exacta:
fuente
Python 2 , 55 bytes
Pruébalo en línea!
fuente
05AB1E ,
1110 bytesPruébalo en línea!
fuente
|DO‚€SOÆ9÷
por 10 bytes.Neim , 10 bytes
Explicación:
¡Intentalo!
Solución alternativa, también 10 bytes:
Explicación:
¡Intentalo!
fuente
PHP> = 7.1, 81 bytes
-2 bytes de eliminación
|0
En este caso, el ciclo se ejecuta hasta que$i
esINF
Casos de prueba
fuente
$i
convierteINF
?1.0E+309
es el primerINF
valor ¡ Pruébelo en línea!Braingolf , 20 bytes
Pruébalo en línea!
Utiliza el mismo método que todos los demás.
Podría haber guardado un byte o 2 si hubiera tenido la previsión de permitir el
d
uso del modificador codicioso, entonces podría haber reemplazadod<d
con&d
ah bueno, la próxima vez.Explicación
fuente