Finden Sie für eine gegebene Liste der Nummern die letzte Ziffer von Beispiel:x x x … x n 3 2 1
[3, 4, 2] == 1
[4, 3, 2] == 4
[4, 3, 1] == 4
[5, 3, 2] == 5
Weil .
Weil .
Weil .
Weil .
Regeln:
Dies ist Codegolf, daher gewinnt die Antwort mit den wenigsten Bytes.
Wenn in Ihrer Sprache die Ganzzahlgröße begrenzt ist (z. B. ), ist n so klein, dass die Summe in die Ganzzahl passt.
Die Eingabe kann in jeder vernünftigen Form erfolgen (stdin, Datei, Befehlszeilenparameter, Ganzzahl, Zeichenfolge usw.).
Die Ausgabe kann in jeder vernünftigen Form erfolgen (Standardausgabe, Datei, grafisches Benutzerelement, in dem die Nummer angezeigt wird usw.).
Sah auf Code-Kriege.
number
s. Meinen Sie ausschließlich positive ganze Zahlen? So habe ich das Gefühl, dass es interpretiert wurde.[999999,213412499,34532599,4125159,53539,54256439,353259,4314319,5325329,1242149,142219,1243219,14149,1242149,124419,999999999]
gültig und das Ergebnis sollte lauten.1
Wenn ja, muss dies in der Frage klarer formuliert werden, da Sie Antworten ausgewählt haben, die dies nicht lösen (Tipp - Bewegen Sie dasmod
Innere der Schleife). Fügen Sie vielleicht einige Beispiele hinzu, die dies verdeutlichen.9
. Das dazu notwendige Ziffernreduktionsschema ist viel interessanter als die tatsächlichen Antworten, die dieses Problem erhalten hat.Antworten:
JavaScript (ES7), 22 Byte
Beschränkt auf .253−1
Probieren Sie es online!
quelle
**
ist der Potenzierungsoperator von JavaScript. Der Rest ist ziemlich unkompliziert.a.join`**`
ist äquivalent zua.join(['**'])
und['**']
wird'**'
von derjoin
Methode erzwungen .n % 10
die letzte Ziffer vonn
R , 25 Bytes
Probieren Sie es online!
quelle
Reduce
wenn sie benutzt werden.Haskell, 19 Bytes
Probieren Sie es online!
quelle
HP 49G RPL, 36,5 Byte
Führen Sie es im APPROX-Modus aus (aber geben Sie das Programm im EXAKT-Modus ein). Übernimmt Eingaben auf dem Stapel, wobei das erste Element am tiefsten im Stapel liegt, als ganze oder reelle Zahlen.
Es exponentiiert direkt auf dem Stapel wie in Sophias Lösung, bis ein Wert übrig ist, und benötigt dann Mod 10, um die letzte Ziffer zu erhalten.
Der Grund, warum ich APPROX für die Berechnung verwende, ist, dass 0.0 ^ 0.0 = 1 (wenn beide Real sind), aber 0 ^ 0 =? (wenn beide ganze Zahlen sind). APPROX erzwingt alle Ganzzahlen in reelle Zahlen, daher ist die Eingabe mit beiden in Ordnung. Ich benutze jedoch EXACT, um das Programm aufzurufen, da 10 (Ganzzahl) ziffernweise und 6,5 Byte gespeichert sind, 10.0 (Real) jedoch als vollständige reelle Zahl gespeichert ist und 10,5 Byte beträgt. Ich vermeide auch die Verwendung von RPL's Reduce (STREAM genannt), da es ein zusätzliches Programmobjekt einführt, das 10 Byte Overhead bedeutet. Ich habe bereits eine und will keine andere.
Beschränkt auf die Genauigkeit eines HP 49G real (12 Dezimalstellen)
-10 Byte nach leerer Liste -> 1 Anforderung wurde entfernt.
-2 Bytes durch Eingabe im Stack.
quelle
Gleichstrom ,
17-15BytesProbieren Sie es online!
Nimmt Eingaben vom Stapel auf und gibt sie an den Stapel aus. Sehr einfache Implementierung - Exponentiert, bis nur noch ein Wert auf dem Stack und Mod für die letzte Ziffer übrig ist.
Danke an brhfl für das Speichern von zwei Bytes!
quelle
10%
zuA%
, und ein weiteres Byte nicht Stack - Tiefe zweimal überprüft - nur legen1
vor der Ausführung oben auf dem Stapel da n ^ 1 == n:1[^z1<M]dsMxA%
A
als Literal verwenden lassen würde, während die Dezimaleingabe aktiviert ist. Vielen Dank @brhfl!J , 5 Bytes
-3 bytes dank cole!
Probieren Sie es online!
quelle
10|^/
nicht05AB1E , 4 Bytes
Probieren Sie es online!
Erläuterung
quelle
E
im Header)..V
..«mθ
Sieht eher wie ein Snippet aus, da Sie es für sich genommen keiner Variablen zur späteren Wiederverwendung zuweisen können. Nun, Adnan hat das Problem behoben, aber wie?Pure Bash (nur integrierte - keine externen Dienstprogramme), 21
Die Eingabe wird in der Befehlszeile als durch Kommas getrennte Liste angegeben.
Bash-Ganzzahlen unterliegen für 64- und 32-Bit-Versionen den normalen Beschränkungen für Ganzzahlen mit Vorzeichen.
Probieren Sie es online!
quelle
^
ist bitweises XOR, weshalb Sie5
aus dem Testfall herauskommen und nicht aus dem richtigen1
. Sie müssen ein Byte hinzufügen, um zu wechseln**
^
Ich bin nicht sicher, wie sich das eingeschlichen hat - ich hatte**
in früheren Iterationen meines Entwicklungszyklus.Wolfram Language (Mathematica) , 16 Byte
Probieren Sie es online!
quelle
Python 2 und Python 3 , 30 Bytes
Probieren Sie es online!
Es
N
wird erwartet, dass die Eingabe ein iterierbares Objekt über Zeichenfolgendarstellungen von Zahlenliteralen ist .quelle
Ruby,
4147 BytesGrößenzunahme aufgrund der Behandlung von 0 im Eingabearray, die zusätzliche Berücksichtigung erfordert. Dank an
rewritten
Dies wird gelöst, da ich glaube, dass die ursprüngliche Quelle beabsichtigt ist, dh für sehr große Potenzierungen, die nicht in sprachgebundene Ganzzahlen passen - die Einschränkung ist, dass das Array summiert wird
2**32-1
und nicht, dass die Zwischenberechnungen auch garantiert passen. Tatsächlich scheint dies der Punkt der Herausforderung bei Code Wars zu sein. Rubys native Ganzzahlen können zwar ziemlich groß werden, mit% 10 am Ende können sie das folgende Beispiel jedoch nicht naiv verarbeitenZ.B
Eingang:
[999999,213412499,34532597,4125159,53539,54256439,353259,4314319,5325329,1242149,142219,1243219,14149,1242149,124419,999999999]
Ausgabe:
9
quelle
n**(t%4+4)
durch,n**((t-1)%4+1)
sodass Sien**1
anstelle vonn**5
usw. ein Lob für die Beobachtung erhalten, dass in jedem Stadium 4 ein guter Zyklus wäre.n<2?n:
vorhern**
.05AB1E , 8 Bytes
Probieren Sie es online!
quelle
...gGm}10%
(oder etwas Golfspieleres).Perl 6 , 14 Bytes
Probieren Sie es online!
Verwendet die Verkleinerungs-Meta-eckigen Klammern mit dem Operator **, modulo 10.
quelle
APL (Dyalog Unicode) , 5 Bytes
Probieren Sie es online!
quelle
C # (.NET Core) , 84 Byte
Probieren Sie es online!
quelle
a
und die Schleifenbedingung mit decrement (for(var i=a.Lengt-1;i-->0;)
) kombinieren . Aberusing
-Anweisung muss in die Byteanzahl einbezogen werden.C (gcc) , 56
Rekursive Funktion,
r()
die von Makro aufgerufen wirdf
- normale Stapelbegrenzungen gelten.Eingabe als nullterminiertes int-Array. Dies unter der Annahme, dass keines der x n Null ist.
Probieren Sie es online!
quelle
) r(
->)r(
.r(int*n){return pow
aufR;r(int*n){R=pow
.Julia 0,6 , 30 Bytes
Probieren Sie es online!
Dies ist eine anon Funktion function
ist der Kompositionsoperator.
Es sind mehrere Bytes
quelle
Japt
-h
, 7 BytesProbieren Sie es online!
Erläuterung:
quelle
Japt
-h
,76 BytesWenn die Eingabe in umgekehrter Reihenfolge erfolgen kann, kann das erste Zeichen entfernt werden.
Beschränkt auf
2**53-1
.Versuch es
Erläuterung
quelle
Gelee , 6 Bytes
Probieren Sie es online!
quelle
Python 2 ,
4543 BytesProbieren Sie es online!
quelle
Excel VBA, 60 Bytes
Eine anonyme VBE-Direktfensterfunktion, die Eingaben aus dem Bereich entgegennimmt
[A1:XFD1]
quelle
Stax , 7 Bytes
Führen Sie es aus, und debuggen Sie es
Algorithmus wie in meiner Python-Antwort
quelle
CJam , 14 Bytes
Sollte für jede Eingabe funktionieren, da CJam nicht auf 64-Bit-Ganzzahlen beschränkt ist
Probieren Sie es online!
quelle
Python 3 , 55 Bytes
ältere Versionen
quelle
p=lambda...
? Python kann keine rekursiven anonymen Lambdas verarbeiten. Wenn Ihre Funktion also benannt werden muss, muss sie Teil Ihrer Lösung sein, und die Benennung wird für Code-Golf-Herausforderungen auf Ihre Byteanzahl angerechnet.Python 3 , 47 Bytes
Probieren Sie es online!
quelle
Brain-Flak , 161 Bytes
Beinhaltet +1 für
-r
Probieren Sie es online!
Das Beispiel
[3, 4, 2]
dauert länger als 60 Sekunden, sodass die TIO-Verbindung verwendet wird[4, 3, 2]
.Das
-r
kann entfernt werden, wenn die Eingabe für eine Byteanzahl von 160 in umgekehrter Reihenfolge erfolgen kann.quelle
Pari / GP , 32 Bytes
Probieren Sie es online!
quelle
Z80Golf , 36 Bytes
Probieren Sie es online!
Brute-Force-Testgeschirr
Nimmt die Eingabe als Rohbytes. Beschränkt auf 2 ** 8-1.
Erläuterung
quelle
Ruby ,
2420 BytesProbieren Sie es online!
quelle