Geben Sie eine Zahl als Eingabe ein und drucken Sie die Gesamtsumme aus
Was ist eine kollektive Summe?
Betrachten Sie die Zahl 13214
, die Eingabe
Durchlaufen Sie jede der Ziffern ab der linken Seite, um die Gesamtsumme zu erhalten.
1
bedeutet, schauen Sie sich die erste Ziffer an und addieren Sie sie zur Summe, Summe = 1
3
bedeutet, schauen Sie sich die "ersten 3 Ziffern" an und addieren Sie sie zur Summe, Summe = 1 + 132
2
bedeutet, schauen Sie sich die "ersten 2 Ziffern" an und addieren Sie sie zur Summe, Summe = 1 + 132 + 13
1
Das heißt, Sie sehen sich die erste Ziffer an und addieren sie zur Summe, Summe = 1 + 132 + 13 + 1
4
bedeutet, schauen Sie sich die "ersten 4 Ziffern" an und addieren Sie sie zur Summe, Summe = 1 + 132 + 13 + 1 + 1321
Gesamtsumme = 1468
und dies ist Ihre Ausgabe
Spezialfälle:
Wenn wir auf eine stoßen 0
, halten wir die Summe natürlich gleich
The number 1301 would have a sum = 1 + 130 + 1 = 132
Wenn wir auf eine Zahl stoßen, die größer ist als die Länge der Eingabe, addieren wir alles
The number 251 would have a sum = 25 + 251 + 2 = 278
Testfälle:
collectiveSum(0) = 0
collectiveSum(2) = 2
collectiveSum(2315) = 23 + 231 + 2 + 2315 = 2571
Die kürzeste Anzahl von Bytes gewinnt. Viel Spaß beim Golfen!
quelle
2315
Testfall fehlt der+ 2
aus1
und sollte ergeben2571
.2571
.Antworten:
05AB1E ,
43 Bytes-1 dank Kevin Cruijssen (Verwendung von a zu
€
vermeiden}
)Probieren Sie es online!
Wie?
quelle
ε£}
kann sein€£
, ein Byte zu speichern.€
Rewrites und war bereits eine Weile in der älteren Version von 05AB1E davor dabei. Es war bereits da, als ich meine allererste 05AB1E-Antwort im April 2018 veröffentlichte. Es ist also möglich, dass es kurz nach dem Posten dieser Antwort hinzugefügt wurde, aber ich bin mir nicht sicher.Python 2 , 43 Bytes
Probieren Sie es online!
quelle
ValueError
for-Eingabe von1301
oder eine Eingabe mit einer Null als einer ihrer Ziffern auszulösen.int
Funktion kann eine Ganzzahl akzeptieren, wobei das'0'
Zeichenfolgenliteral durch0
ein Byte ersetzt werden muss.Python 2, 72 Bytes
Erste Einreichung! Danke an @DestructibleLemon für die Hilfe!
quelle
Haskell,
4337 BytesProbieren Sie es online!
Die eingegebene Nummer wird als Zeichenfolge verwendet.
quelle
Ruby , 36 Bytes
Probieren Sie es online!
quelle
#sum
ist nicht auf fixnums definiert, also nehme ich an, dass Sien
eine Zeichenfolge sein möchten . JedochString#sum
berechnet einnot a particularly good checksum
und ignoriert den Block geben Sie es. Wenn Sie meintenn.chars.sum{
,Enumerable#sum
ist es nicht in der ruby stdlib, es ist eine Erweiterung, die durch Schienen bereitgestellt wird. Bitte testen Sie Ihre Lösungen, bevor Sie sie veröffentlichen.Enumerable#sum
ist in Ruby 2.4 und TIO verwendet 2.4JavaScript,
42 bis40 BytesVielen Dank an @Shaggy für das Golfen mit 2 Bytes
Erhält Eingaben als Zeichenfolge und gibt eine Ganzzahl zurück. Wie derzeit geschrieben, hinterlässt dieser Code führende Nullen in allen Ganzzahlen.
quelle
x=>[...x].map(y=>a+=+x.slice(0,y),a=0)|a
R, 57 Bytes
hat dank @Vlo noch eins gespart
was: 4 Bytes gespart dank @Robert Hackens Vorschlag.
Ein einfacher String-Ansatz.
quelle
unlist
durch ersetzenel
.sum(strtoi(substring(i<-scan(,""),1,el(strsplit(i,"")))))
C (gcc) , 106 Bytes
Probieren Sie es online!
quelle
Kohle , 10 Bytes
Probieren Sie es online! Link ist eine ausführliche Version des Codes. Erläuterung:
quelle
Oktave , 56 Bytes
Anonyme Funktion, die eine Zeichenfolge als Eingabeargument und eine Zahl als Ausgabe zurückgibt.
Probieren Sie es online!
Die kürzere Version
arbeitet in Matlab, weil
char(0)
es als Leerzeichen behandelt wird.quelle
Gelee ,
75 Bytes-2 dank Dennis (Kopf vektorisiert>. <)
4 wenn wir Ziffernlisten nehmen dürfen *
Probieren Sie es online!
*
ḣ`ḌS
Wie?
quelle
Perl 6 , 27 Bytes
Probier es aus
Erweitert:
quelle
C (gcc) ,
7775 BytesMuss mit dem
-lm
Schalter kompiliert werden oder GCC erkennt die mathematischen Funktionen nicht.Probieren Sie es online!
quelle
dc , 55 Bytes
Keine Zeichenfolgen oder Arrays! In der Tat werden die erforderlichen Ziffern nur durch mathematische Manipulation erfasst.
Probieren Sie es online!
quelle
Schale , 6 Bytes
Probieren Sie es online!
Erläuterung
quelle
J , 18 Bytes
Erläuterung
Nimmt einen String als Eingabe
Probieren Sie es online!
quelle
Japt, 5 Bytes
Übernimmt die Eingabe als Zeichenfolge.
Versuch es
Erläuterung
quelle
Stax , 6 Bytes
Führen Sie es online aus und debuggen Sie es
Dies ist die entsprechende ASCII-Darstellung desselben Programms.
quelle
Eigentlich 10 Bytes
Probieren Sie es online!
Erläuterung
quelle
JavaScript, 43 Bytes
Es ist gut nach 3 Uhr morgens, warum spiele ich noch Golf ?!
Übernimmt die Eingabe als Zeichenfolge.
Probieren Sie es online aus
quelle
Perl 5, 26 Bytes
Enthält
+1
fürp
quelle
K4 , 22 Bytes
Lösung:
Beispiele:
Erläuterung:
Brechen Sie in die Basis 10 ein, nehmen Sie von jeder Zahl min und daraus die Länge der Liste. Rechne zurück und fasse zusammen.
quelle
Java 8, 92 Bytes
Erläuterung:
Probieren Sie es online aus.
quelle
REXX 118 Bytes
Versuchen Sie es hier.
Geben Sie auf der Registerkarte STDIN einen Eingabewert ein.
quelle
Python 3 , 66 Bytes
Probieren Sie es online!
quelle
Gelee , 6 Bytes
Probieren Sie es online!
Holen Sie sich die
D
Ziffern der Eingabe, dann holen Sie sich die ersten [jede Ziffer] Elemente der Eingabe (ḣ
ead), dannV
alle Summen, um es wieder eine Zahl zu machen undS
um.quelle