Bei der langen Multiplikation bleiben nach der Multiplikation der Zahlen die Teilprodukte übrig, bei dieser Herausforderung geben Sie diese Teilprodukte aus.
Da eine lange Multiplikation lang ist, muss der Code zum Ausgleich so kurz wie möglich sein.
Beispiele
34, 53
102, 1700
48, 38
384, 1440
361, 674
1444, 25270, 216600
0, 0
0
1, 8
8
Spezifikationen
- Die Eingabe / Ausgabe kann in jedem vernünftigen Format erfolgen, z. B. in Form eines Arrays, einer durch Kommas getrennten Zeichenfolge (oder einem anderen Trennzeichen, das keine Ziffer ist), einer Liste, Funktionsargumenten usw.
- Teilprodukte müssen in aufsteigender Reihenfolge sein.
- Wenn es sich um ein Teilprodukt handelt
0
, können Sie wählen, ob Sie es ausgeben möchten oder nicht.
Das ist Code-Golf, also gewinnt der kürzeste Code in Bytes!
code-golf
arithmetic
Downgoat
quelle
quelle
12, 102
? Die meisten Antworten scheinen zurückzukehren24, 0, 1200
.24, 0, 1200
ist in Ordnung. Ich werde in der Post angebenAntworten:
Gelee, 10 Bytes
Probieren Sie es online!
Wie es funktioniert
quelle
Pyth, 12 Bytes
Testsuite
Nimmt Eingabe-Newline getrennt, z
Erläuterung:
quelle
JavaScript (ES7), 48 Byte
ES6 (56 Bytes)
Erläuterung
Gibt ein Array von Teilprodukten als Zahlen zurück.
Prüfung
Test verwendet,
Math.pow
anstatt**
es in Standard-Browsern zum Laufen zu bringen.Code-Snippet anzeigen
quelle
Lua,
7268 Bytesquelle
APL, 21 Bytes
Dies ist eine dyadische Funktion, die Ganzzahlen links und rechts akzeptiert und ein Array zurückgibt. Um es aufzurufen, weisen Sie es einer Variablen zu.
Erläuterung:
quelle
⍎¨⍕
ist ziemlich schlau.05AB1E , 15 Bytes
Code:
Erläuterung:
quelle
Pyth, 26 Bytes
Dies definiert eine Funktion
c
so, dass sie2
Argumente akzeptiert und die Funktion die Teilprodukte druckt.quelle
MATL , 18 Bytes
Der Compiler (5.1.0) arbeitet in Matlab und in Octave.
Jede Nummer wird in einer separaten Zeile eingegeben.
Beispiel
Erläuterung
quelle
Haskell,
605754 Bytes5 Bytes weniger (drop the
.show
), wenn ich die zweite Zahl als String nehmen kann.Anwendungsbeispiel:
g 361 674
->[1444,25270,216600]
.Multiplizieren Sie jede Ziffer auf der Rückseite
y
mitx
und skalieren Sie mit10^i
woi = 0,1,2,...
.Edit: Danke an @ Mauris für 3 Bytes!
quelle
(\b->(x*10^b*).read.pure)
.Julia,
5049 BytesDies ist eine Funktion, die zwei ganze Zahlen akzeptiert und ein ganzzahliges Array zurückgibt.
Die
digits
Funktion gibt ein Array der Ziffern der eingegebenen Ganzzahl in umgekehrter Reihenfolge zurück. Wir erhalten den Index und die Wertepaare unter Verwendungenumerate
und Berechnung der Teilprodukte als erste Eingabe , multipliziert mit den Ziffern mal 10, die zur Potenz des Ziffernindex - 1 erhoben werden.Dank Dennis ein Byte gespart!
quelle
Python 2, 61
quelle
CJam,
1917 BytesNimmt Eingaben vor, wobei das erste Element eine Ganzzahl und das zweite eine Zeichenfolge ist (z
34 "53"
. B. ). Vorschläge sind willkommen, da sie sicherlich kürzer sein können. Vielen Dank an Dennis für das Speichern von zwei Bytes.Probieren Sie es online aus.
Erläuterung
quelle
~~A@#**
spart ein paar Bytes.Haskell, 37 Bytes
Kein Aufreihen, nur Rechnen. Das kleinste Teilprodukt wird dem Rest rekursiv vorangestellt, wobei die letzte Ziffer von
b
abgeschnitten wird und ein Multiplikator von 10 angewendet wird. Die Operator-Rangfolge funktioniert gut.quelle
𝔼𝕊𝕄𝕚𝕟, 11 Zeichen / 23 Byte (nicht wettbewerbsfähig)
Try it here (Firefox only).
Beim Codieren der Lösung für dieses Problem wurde ein Fehler gefunden ...
Erläuterung
quelle
Japt , 28 Bytes
Erläuterung:
quelle
ApY+1 /10
stattdessen verwendet werdenApY
, weilAp0
(was 10 ^ 0 ist) 100 ergibt. Ich denke, es ist aus dem Grund, schnelles Quadrieren mit zuzulassenAp
, bedeutet aber0
nicht "keine Argumente". PLZ-Verlegenheit, Eth.Python 2, 42 Bytes
Kein Aufreihen, nur Rechnen. Hängt das kleinste Teilprodukt rekursiv an den Rest an, wobei die letzte Ziffer von
b
abgeschnitten und ein Multiplikator von 10 angewendet wird.quelle