Bei einer positiven ganzen Zahl n
( Beispiel:n=1234444999
)
- In aufeinanderfolgende Ziffernfolgen aufteilen:
[1, 2, 3, 4444, 999]
- Nehmen Sie das digitale Produkt jedes Laufs.
[1, 2, 3, 4*4*4*4, 9*9*9] = [1, 2, 3, 256, 729]
- Fassen Sie es zusammen ...
- 991
- Wiederholen, bis dies zu einer einzelnen Zahl konvergiert:
- 1234444999
- 991
- 82
- 10
- 1
- Letzte Nummer zurückgeben.
Testfälle
BASE CASES:
0 = 0
...
9 = 9
OTHER CASES:
1234444999 = 1
222222222222222 = 8
111222333444555666777888999000 = 9
11122233344455566677788899 = 8
1112223334445 = 6
14536 = 1
99 = 9
Gewünschtes Beispiel:
334455553666333
9+16+625+3+216+27
896
8+9+6
23
2+3
**5**
Gewinnen?
Es ist Code-Golf , die niedrigste Byteanzahl ist der Gewinner.
11122233344455566677788899
.33445555666333
?Antworten:
05AB1E ,
765 BytesDanke an Emigna für das Speichern eines Bytes!
Verwendet die 05AB1E- Codierung. Probieren Sie es online!
quelle
gF
mitv
.Gelee, 9 Bytes
Probieren Sie es online aus
So funktioniert das:
quelle
€
.Œg
ist inkonsistent, wenn es nur eine einzige Gruppe gibt. Was steckt dahinter?Mathematica,
5542 Bytes-13 Bytes von @JungHwan min . Vielen Dank!
Für den Fall, dass jemand dies als Zufallsgenerator verwenden möchte, finden Sie
hier die ersten 100.000 Zahlen
quelle
Japt ,
171513 BytesOnline testen! Nimmt die Eingabe als String.
Immer noch nicht zufrieden mit dieser Antwort ...
Erläuterung
quelle
x_×
Kombination mit brachteI'm unsatisfied
mich zum Lachen. Vielen Dank ;).ß
das wäre der richtige Weg gewesen. Ich hab mich geirrt! (Mindestens um halb 6 morgens saß ich im Bus zum Flughafen!)Python 3 , 96 Bytes
Probieren Sie es online!
quelle
Brachylog , 8 Bytes
Probieren Sie es online!
Erläuterung
quelle
Pyth, 11 Bytes
Probieren Sie es online aus. Testsuite.
quelle
PHP , 113 Bytes
Probieren Sie es online!
quelle
Schale , 8 Bytes
Nimmt und gibt eine ganze Zahl zurück. Probieren Sie es online!
Erläuterung
Ein eingebautes 10-stelliges System wäre schön ...
quelle
JavaScript (ES6),
77736765 Bytes2 Bytes dank @CraigAyre gespart
Wie?
Die Eingabe s wird in einen arithmetischen Ausdruck umgewandelt mit:
Zum Beispiel
1234444999
wird+1+2+3+4*4*4*4+9*9*9
.Wir werten diesen Ausdruck aus und führen einen rekursiven Aufruf mit dem Ergebnis durch, bis eine einzelne Dezimalstelle erreicht ist.
Testfälle
Code-Snippet anzeigen
quelle
f=s=>s>9?f(''+eval(s.replace(/(.)\1*/g,s=>'+'+[...s].join`*`))):s
CJam , 22 Bytes
Probieren Sie es online!
quelle
Haskell ,
1037069 BytesProbieren Sie es online!
quelle
until(<10)
. Auch dermap(read.pure)
kann vorher verschoben werdenshow
, wodurch Klammern gespart werden.$
anstelle der äußeren Klammern verwenden.R ,
114104 Bytesliest von stdin; gibt die Antwort als String zurück.
Probieren Sie es online!
quelle
paste
anstelle von verwendenas.character
. Ersteres erzwingt seine Eingabe incharacter
Typ ;-)MATL, 11 Bytes
Probieren Sie es bei MATL Online aus
Erläuterung
quelle
Perl 5 , 50 Bytes
49 Byte Code +
-p
Flag.Probieren Sie es online!
quelle
R
9796 BytesEtwas anderer Ansatz als die andere Antwort mit R .
Diese Antwort nutzt die
rle
Funktion, diecompute[s] the lengths and values of runs of equal values in a vector
.-1 Bytes dank @Giuseppe!
quelle
**
ist gleichbedeutend mit^
Braingolf, 25 Bytes
Füge einen TIO-Link hinzu, sobald ich Dennis dazu bringe, die neueste Version zu installieren, indem er gierige Operatoren verwendet
(...)
herunterladen soll Schleifen derzeit bei TIO nicht funktioniertErläuterung
quelle
Japt , 19 Bytes
Probieren Sie es online!
Erläuterung:
quelle