Na multiplicação longa , depois de multiplicar os números, você fica com os produtos parciais; nesse desafio, você produzirá esses produtos parciais.
Como a multiplicação longa é longa, para compensar seu código precisará ser o mais curto possível.
Exemplos
34, 53
102, 1700
48, 38
384, 1440
361, 674
1444, 25270, 216600
0, 0
0
1, 8
8
Especificações
- Entrada / Saída pode estar em qualquer formato razoável, como matriz, sequência separada por vírgula (ou qualquer outro delimitador que não seja um dígito), lista, argumentos de função etc.
- Os produtos parciais devem estar em ordem crescente.
- Se um produto parcial for
0
, você pode escolher se deseja produzi-lo ou não.
Este é o código-golfe, pelo que o código mais curto em bytes vence!
code-golf
arithmetic
Downgoat
fonte
fonte
12, 102
? A maioria das respostas parece retornar24, 0, 1200
.24, 0, 1200
está bem. Vou especificar no postRespostas:
Gelatina, 10 bytes
Experimente online!
Como funciona
fonte
Pitão, 12 bytes
Suíte de teste
Separa a nova linha de entrada, por exemplo
Explicação:
fonte
JavaScript (ES7), 48 bytes
ES6 (56 bytes)
Explicação
Retorna uma matriz de produtos parciais como números.
Teste
O teste é usado em
Math.pow
vez de**
fazê-lo funcionar em navegadores padrão.Mostrar snippet de código
fonte
Lua,
7268 bytesfonte
APL, 21 bytes
Esta é uma função diádica que aceita números inteiros à esquerda e à direita e retorna uma matriz. Para chamá-lo, atribua-o a uma variável.
Explicação:
fonte
⍎¨⍕
é muito inteligente.05AB1E , 15 bytes
Código:
Explicação:
fonte
Pitão, 26 bytes
Isso define uma função
c
que aceita2
argumentos e a função imprime os produtos parciais.fonte
MATL , 18 bytes
O compilador (5.1.0) funciona no Matlab e no Octave.
Cada número é inserido em uma linha separada.
Exemplo
Explicação
fonte
Haskell,
605754 bytes5 bytes a menos (solte
.show
) se eu puder pegar o segundo número como uma string.Exemplo de uso:
g 361 674
->[1444,25270,216600]
.Multiplique cada dígito do reverso de
y
comx
e escala com10^i
ondei = 0,1,2,...
.Edit: Obrigado a @Mauris por 3 bytes!
fonte
(\b->(x*10^b*).read.pure)
.Julia,
5049 bytesEsta é uma função que aceita dois números inteiros e retorna uma matriz inteira.
A
digits
função retorna uma matriz dos dígitos do número inteiro de entrada na ordem inversa. Obtemos o índice, pares de valores usandoenumerate
e calculamos os produtos parciais como a primeira entrada vezes os dígitos vezes 10 aumentados para a potência do índice do dígito - 1.Guardado um byte graças a Dennis!
fonte
Python 2, 61
fonte
CJam,
1917 bytesRecebe entrada com o primeiro item sendo um número inteiro e o segundo uma string (por exemplo
34 "53"
). Sugestões são bem-vindas, pois tenho certeza de que pode ser mais curta. Agradecemos a Dennis por salvar dois bytes.Experimente online.
Explicação
fonte
~~A@#**
salva alguns bytes.Haskell, 37 bytes
Não rigoroso, apenas aritmético. Anexa recursivamente o menor produto parcial ao restante, onde o último dígito de
b
é truncado e um multiplicador de 10 é aplicado. A precedência do operador funciona bem.fonte
, 11 caracteres / 23 bytes (não competitivo)
Try it here (Firefox only).
Encontrou um erro ao codificar a solução para este problema ...
Explicação
fonte
Japonês , 28 bytes
Explicação:
fonte
ApY+1 /10
vez deApY
, porqueAp0
(que é 10 ^ 0) dá 100. Acho que é pelo motivo de permitir o esquadrinhamento rápidoAp
, mas0
não significa "sem argumentos". Plz fix, Eth.Python 2, 42 bytes
Não rigoroso, apenas aritmético. Anexa recursivamente o menor produto parcial ao restante, onde o último dígito de
b
é truncado e um multiplicador de 10 é aplicado.fonte