En la multiplicación larga , después de multiplicar los números, te quedan los productos parciales, en este desafío obtendrás esos productos parciales.
Debido a que la multiplicación larga es larga, para compensar su código tendrá que ser lo más corto posible.
Ejemplos
34, 53
102, 1700
48, 38
384, 1440
361, 674
1444, 25270, 216600
0, 0
0
1, 8
8
Especificaciones
- La entrada / salida puede estar en cualquier formato razonable, como matriz, cadena separada por comas (o cualquier otro delimitador que no sea un dígito), lista, argumentos de función, etc.
- Los productos parciales deben estar en orden creciente.
- Si es un producto parcial
0
, puede elegir si desea generarlo o no.
Este es el código de golf, ¡el código más corto en bytes gana!
code-golf
arithmetic
Downgoat
fuente
fuente
12, 102
? La mayoría de las respuestas parecen regresar24, 0, 1200
.24, 0, 1200
está bien. Especificaré en la publicaciónRespuestas:
Jalea, 10 bytes
Pruébalo en línea!
Cómo funciona
fuente
Pyth, 12 bytes
Banco de pruebas
Toma entrada nueva línea separada, por ejemplo
Explicación:
fuente
JavaScript (ES7), 48 bytes
ES6 (56 bytes)
Explicación
Devuelve una matriz de productos parciales como números.
Prueba
La prueba se usa en
Math.pow
lugar de**
hacerlo funcionar en navegadores estándar.Mostrar fragmento de código
fuente
Lua,
7268 bytesfuente
APL, 21 bytes
Esta es una función diádica que acepta enteros a la izquierda y a la derecha y devuelve una matriz. Para llamarlo, asígnelo a una variable.
Explicación:
fuente
⍎¨⍕
es bastante inteligente05AB1E , 15 bytes
Código:
Explicación:
fuente
Pyth, 26 bytes
Esto define una función
c
tal que acepta2
argumentos, y la función imprime los productos parciales.fuente
MATL , 18 bytes
El compilador (5.1.0) funciona en Matlab y en Octave.
Cada número se ingresa en una línea separada.
Ejemplo
Explicación
fuente
Haskell,
605754 bytes5 bytes menos (suelte el
.show
) si puedo tomar el segundo número como una cadena.Ejemplo de uso:
g 361 674
->[1444,25270,216600]
.Multiplica cada dígito del reverso de
y
conx
y escala con10^i
dóndei = 0,1,2,...
.Editar: ¡Gracias a @Mauris por 3 bytes!
fuente
(\b->(x*10^b*).read.pure)
.Julia,
5049 bytesEsta es una función que acepta dos enteros y devuelve una matriz de enteros.
La
digits
función devuelve una matriz de dígitos del entero de entrada en orden inverso. Obtenemos el índice, los pares de valores usandoenumerate
y calculamos los productos parciales como la primera entrada multiplicada por los dígitos multiplicados por 10 elevado a la potencia del índice del dígito - 1.¡Ahorré un byte gracias a Dennis!
fuente
Pitón 2, 61
fuente
CJam,
1917 bytesToma entrada con el primer elemento como un entero y el segundo como una cadena (por ejemplo
34 "53"
) Las sugerencias son bienvenidas, ya que estoy seguro de que puede ser más corto. Gracias a Dennis por guardar dos bytes.Pruébalo en línea.
Explicación
fuente
~~A@#**
Guarda un par de bytes.Haskell, 37 bytes
Sin encordado, solo aritmética. Precede recursivamente el producto parcial más pequeño al resto, donde
b
se trunca el último dígito de y se aplica un multiplicador de 10. La precedencia del operador funciona bien.fuente
𝔼𝕊𝕄𝕚𝕟, 11 caracteres / 23 bytes (no competitivo)
Try it here (Firefox only).
Encontró un error al codificar la solución a este problema ...
Explicación
fuente
Japt , 28 bytes
Explicación:
fuente
ApY+1 /10
lugar deApY
, porqueAp0
(que es 10 ^ 0) da 100. Supongo que es por la razón para permitir una cuadratura rápidaAp
, pero0
no significa "sin argumentos". Por favor arregle, Eth.Python 2, 42 bytes
Sin encordado, solo aritmética. Agrega recursivamente el producto parcial más pequeño al resto, donde
b
se trunca el último dígito de y se aplica un multiplicador de 10.fuente