Aufgabe
Geben Sie bei zwei positiven Ganzzahlen die Anzahl der Übertragungen aus, die erforderlich sind, um sie in der Basis 10 als Long-Addition zu addieren.
Beispiele
¹¹¹ <-- carries
999
+ 1
----
1000
Es werden drei Tragetaschen benötigt.
¹
348
+ 91
----
439
Ein Carry wird benötigt.
Testfälle
999, 1 -> 3
398, 91 -> 1
348, 51 -> 0
348, 52 -> 2
5, 15 -> 1
999, 999 -> 3
505, 505 -> 2
Wertung
Das ist Code-Golf . Kürzeste Antwort in Bytes gewinnt. Es gelten Standardlücken .
code-golf
arithmetic
Undichte Nonne
quelle
quelle
190192, 90909
(hat eine Tragepause).9+9
gibt es18
, aber die Ziffernsumme ist,9+9-10+1
weil es einen Übertrag gibt.repr
Anhängen von aL
für Zahlen oben befassen2**63-1
?Antworten:
Mathematica,
4639 BytesEingang
-7 Bytes von JungHwan
quelle
JavaScript (ES6), 50 Byte
FesteStolen aus ovs' LösungErläuterung
Erklärung mitnehmen
quelle
348 , 52
sollte sein2
C (gcc) , 65 Bytes
Probieren Sie es online!
quelle
Jelly ,
13 12 119 Bytes-1 Byte durch Portierung der mathematischen Antwort von Jenny_mathy .
-2 mehr Bytes durch besseres Golfen: p
Siehe die Testsuite .
Wie?
Meine 12-Byte-Lösung ...
Ein monadischer Link, der ein Paar Ganzzahlen aufnimmt und die Anzahl der Überträge als Ganzzahl zurückgibt.
Es gibt aber wahrscheinlich einen kürzeren Weg!Dort war!Probieren Sie es online! oder sehen Sie sich die Testsuite an .
Wie
quelle
D
undS
...Python , 48 Bytes
Probieren Sie es online!
m=1, 10, 100, ..., 10**99
Überprüft für jeden Platzierungswert , ob an diesem Platzierungswert ein Übertrag vorhanden ist. Die Überlaufprüfunga%m+b%m>=m
wird auf verkürzt~a%m<b%m
.Eine schönere 45-Byte - Variante in den Schwimmer
a
undb
stattdessen nach unten verschobenleider stößt er auf schwimmergenauigkeitsprobleme.
quelle
a+b<m
als Abschlussbedingung verwenden?<=
was länger sein.1e99and
ist böse.JavaScript (ES6),
53 -45 Byte1 Byte gespart durch Hinzufügen einer zusätzlichen Nichtstun-Iteration für Überträge an die Stelle von 1. 7 Bytes durch Anwenden der Übertragsprüfung von @ xnor gespart. Ich hatte auch eine elegantere 45-Byte-Version, die jedoch unter Gleitkommaungenauigkeiten leidet. es würde großartig funktionieren, wenn es in eine Sprache mit exakter Dezimalarithmetik übersetzt wäre:
quelle
Python 2 , 55 Bytes
Probieren Sie es online!
quelle
05AB1E ,
1110 BytesProbieren Sie es online!
quelle
|DO‚€SOÆ9÷
für 10 Bytes.Neim , 10 Bytes
Erläuterung:
Versuch es!
Alternative Lösung, auch 10 Bytes:
Erläuterung:
Versuch es!
quelle
PHP> = 7.1, 81 Bytes
-2 Bytes entfernen
|0
In diesem Fall läuft die Schleife bis$i
istINF
Testfälle
quelle
$i
esINF
?1.0E+309
ist der ersteINF
Wert Probieren Sie es online!Braingolf , 20 Bytes
Probieren Sie es online!
Verwendet die gleiche Methode wie alle anderen.
Hätte ich ein oder zwei Bytes speichern können, hätte ich vorausschauend
d
den gierigen Modifikator verwenden können, dann hätte ich ihnd<d
beim&d
nächsten Mal durch ah gut ersetzen können.Erläuterung
quelle