W długim pomnożeniu , po pomnożeniu liczb, pozostajesz z produktami częściowymi, w tym wyzwaniu otrzymasz te produkty częściowe.
Ponieważ długie mnożenie jest długie, aby zrekompensować kod, musi on być jak najkrótszy.
Przykłady
34, 53
102, 1700
48, 38
384, 1440
361, 674
1444, 25270, 216600
0, 0
0
1, 8
8
Dane techniczne
- Dane wejściowe / wyjściowe mogą być w dowolnym rozsądnym formacie, takim jak tablica, ciąg oddzielony przecinkami (lub dowolny inny separator inny niż cyfra), lista, argumenty funkcji itp.
- Częściowe produkty muszą być w porządku rosnącym.
- Jeśli jest to produkt częściowy
0
, możesz wybrać, czy chcesz go wydrukować, czy nie.
To jest golf golfowy, więc wygrywa najkrótszy kod w bajtach!
code-golf
arithmetic
Downgoat
źródło
źródło
12, 102
? Większość odpowiedzi wydaje się wracać24, 0, 1200
.24, 0, 1200
jest w porządku.Odpowiedzi:
Galaretka, 10 bajtów
Wypróbuj online!
Jak to działa
źródło
Pyth, 12 bajtów
Zestaw testowy
Oddziela wprowadzany znak nowej linii, np
Wyjaśnienie:
źródło
JavaScript (ES7), 48 bajtów
ES6 (56 bajtów)
Wyjaśnienie
Zwraca tablicę produktów częściowych jako liczby.
Test
Testowe zastosowania
Math.pow
zamiast tego,**
aby działały w standardowych przeglądarkach.Pokaż fragment kodu
źródło
Lua,
7268 bajtówźródło
APL, 21 bajtów
Jest to funkcja dynamiczna, która akceptuje liczby całkowite po lewej i prawej stronie i zwraca tablicę. Aby go wywołać, przypisz go do zmiennej.
Wyjaśnienie:
źródło
⍎¨⍕
jest całkiem sprytny.05AB1E , 15 bajtów
Kod:
Wyjaśnienie:
źródło
Pyth, 26 bajtów
Definiuje funkcję
c
taką, że akceptuje2
argumenty, a funkcja drukuje produkty częściowe.źródło
MATL , 18 bajtów
Kompilator (5.1.0) działa w Matlab w Octave.
Każda liczba jest wprowadzana w osobnym wierszu.
Przykład
Wyjaśnienie
źródło
Haskell,
605754 bajtów5 bajtów mniej (upuść
.show
), jeśli mogę wziąć drugą liczbę jako ciąg znaków.Przykład użycia:
g 361 674
->[1444,25270,216600]
.Pomnóż każdą cyfrę rewersu
y
zx
i skaluj z10^i
gdziei = 0,1,2,...
.Edycja: Dzięki @Mauris za 3 bajty!
źródło
(\b->(x*10^b*).read.pure)
.Julia,
5049 bajtówJest to funkcja, która akceptuje dwie liczby całkowite i zwraca tablicę liczb całkowitych.
digits
Zwraca tablicę cyfr liczbę całkowitą wejściowego w odwrotnej kolejności. Otrzymujemy indeks, pary wartości za pomocąenumerate
i obliczamy iloczyny cząstkowe jako pierwsze razy razy cyfry razy 10 podniesione do potęgi wskaźnika cyfry - 1.Oszczędność bajtu dzięki Dennisowi!
źródło
Python 2, 61
źródło
CJam,
1917 bajtówPobiera dane wejściowe, przy czym pierwszy element jest liczbą całkowitą, a drugi ciągiem znaków (np
34 "53"
.). Sugestie są mile widziane, ponieważ jestem pewien, że mogą być krótsze. Dzięki Dennis za zaoszczędzenie dwóch bajtów.Wypróbuj online.
Wyjaśnienie
źródło
~~A@#**
oszczędza kilka bajtów.Haskell, 37 bajtów
Bez rygoryzacji, tylko arytmetyka. Rekurencyjnie dołącza najmniejszy iloczyn częściowy do reszty, w której ostatnia cyfra
b
jest obcinana i mnożony jest 10. Pierwszeństwo operatora działa dobrze.źródło
𝔼𝕊𝕄𝕚𝕟, 11 znaków / 23 bajty (niekonkurencyjny)
Try it here (Firefox only).
Znaleziono błąd podczas kodowania rozwiązania tego problemu ...
Wyjaśnienie
źródło
Japt , 28 bajtów
Wyjaśnienie:
źródło
ApY+1 /10
zamiastApY
, ponieważAp0
(czyli 10 ^ 0) daje 100. Wydaje mi się, że jest to powód, dla którego można pozwolić na szybkie wyrównanieAp
, ale0
nie oznacza to „żadnych argumentów”. Plz fix, Eth.Python 2, 42 bajty
Bez rygoryzacji, tylko arytmetyka. Rekurencyjnie dołącza najmniejszy iloczyn częściowy do reszty, w której ostatnia cyfra
b
jest obcięta i stosowany jest mnożnik 10.źródło