Bei einer positiven ganzen Zahl n als Eingabe wird die umgekehrte Bereichssumme von n ausgegeben.
Eine umgekehrte Bereichssumme wird erstellt, indem ein inklusiver Bereich bis zu n erstellt wird, beginnend mit 1 und einschließlich n, wobei jede der darin enthaltenen Zahlen umgekehrt und summiert wird.
Beispiel:
Folgendes würde bei einer Eingabe von 10 passieren:
Reichweite: [1,2,3,4,5,6,7,8,9,10]
Reverse: [1,2,3,4,5,6,7,8,9,01]
(1-Zeichen-Nummern sind umgekehrt, 10 umgekehrt ist 01 oder 1)
Summe: 46
Zahlen mit 3 oder mehr Ziffern werden genauso umgekehrt wie Zahlen mit 2 Ziffern. Zum Beispiel würde 1234 4321 werden.
Testfälle:
Input -> Output
10 -> 46
5 -> 15
21 -> 519
58 -> 2350
75 -> 3147
999 -> 454545
Komplette Textfelder zur Eingabe von 999 finden Sie hier , vielen Dank an @ fireflame241.
code-golf
number
arithmetic
Genosse SparklePony
quelle
quelle
Antworten:
05AB1E , 3 Bytes
Code
Verwendet die 05AB1E- Codierung. Probieren Sie es online!
Erläuterung
quelle
Reverse
sollteReverse each
eigentlich sein ...R
, währendí
"jeweils umkehren" ist .Bash + GNU Utils, 24
Probieren Sie es online aus .
Erläuterung
quelle
JavaScript (ES6), 42 Byte
Meine bevorzugte doppelt rekursive Lösung ist leider 3 Bytes länger:
quelle
Perl 6 , 20 Bytes
Probier es aus
Erweitert:
quelle
».flip
ruft das.flip
Verfahren auf jedem des Wertes in dem Bereich. Der nächstkürzere Weg dazu.map(*.flip)
sind 5 Bytes mehr.».flip
ist ein Hyper-Methodenaufruf. Während ich das»
und.flip
aufteilen kann, indem\
ich ein Leerzeichen verwende, wie ich es zuvor getan habe; das würde das Verständnis erschweren, da es wie das Ende einesqqww/ /
Konstrukts aussehen würde (« a b "c d" »
).Retina ,
413635 BytesProbieren Sie es online! Link enthält Testfälle. Bearbeiten: 5 Bytes dank @FryAmTheEggman gespeichert. 1 Byte dank @ PunPun1000 gespeichert. Erläuterung:
In Unary konvertieren.
Erstellen Sie einen Bereich von
1
bisn
.Zurück in Dezimalzahl konvertieren.
Kehren Sie jede Zahl um.
Konvertiere zurück zu Unary.
Summieren und zurück in Dezimalzahl konvertieren.
quelle
¶
in der.+¶
Das Spiel wird über mehrere Zeilen entsprechenO^$s`.
das Umkehren der ganzen Saite auch funktioniert.Gelee , 4 Bytes
Probieren Sie es online!
Wie?
quelle
Haskell, 34 Bytes
Einfach und unkompliziert.
quelle
C (gcc) 63 Bytes
Probieren Sie es online!
quelle
cQuents , 4 Bytes
Probieren Sie es online!
Erläuterung
quelle
Python 2 , 38 Bytes
Höhere Terme als das Rekursionslimit können nicht berechnet werden:
Probieren Sie es online!
quelle
import sys
und verwenden,sys.setrecursionlimit()
wenn Sie größere Zahlen verarbeiten möchten, und zwar im tio-Header.Brachylog , 4 Bytes
Probieren Sie es online!
Erläuterung
quelle
Röda ,
564136 Bytes15 Bytes gespart dank @fergusq
Probieren Sie es online!
Dies ist eine anonyme Funktion, die eine Ganzzahl aus dem Eingabestream entnimmt und eine Ganzzahl an den Ausgabestream ausgibt.
Erläuterung
quelle
[::-1]
anstelle von reverse verwenden. Auch `$_
` ist kürzer als_..""
und Klammern nach parseInteger werden nicht benötigt.C # (.NET Core) ,
103 bis97 ByteProbieren Sie es online!
TIO Link gibt alle Ergebnisse von 1 bis 999 aus. Sie können also gerne meine Arbeit überprüfen.
Ich erwartete dies ein wenig kürzer zu sein, aber es stellt sich heraus ,
Reverse()
kehrt ein ,IEnumerable<char>
anstatt eine andere Zeichenfolge , damit ich etwas mehr hinzuzufügen , hatte es wieder in einen String zu drehen , damit ich es in ein int analysieren konnte. Vielleicht gibt es einen kürzeren Weg, umIEnumerable<char>
korrekt von int zu gelangen.Von untergeordneter Bedeutung, verwendet dies auch die FunktionenRange()
Reverse()
undSum()
alles in der richtigen Reihenfolge.-6 Bytes dank TheLethalCoder
quelle
new int[r]
und.Select((_,n)=>...)
werde Sie Bytes sparen.new int[r+1]
bis die richtige Ausgabe erfolgt, da der Index bei 0 beginnt, es werden jedoch immer noch einige Bytes gespart. RIPRange()
obwohlRubin,
56, 52, 41,39 BytesRuby, 34 Bytes (wenn Lambda-Parameter ein String ist)
Vielen Dank an @Unihedron für die zweite Lösung.
quelle
->n{
funktioniert auch.?a..?z
und?a1..?h8
(obwohl Sie besser mit dem 2. Format vorsichtig sein: D)succ
und 2. (wenn entweder Start- oder Endwert nicht implementiert sindsucc
) numerisch sein, werden alsoint..string
als "Schlechter Wert für Bereich" abgelehnt. Die Umkehrung ist wahr (aber leider gibt es keinen Downto-Bereich) oder(?1..n)
kann stattdessen verwendet werdenMathematica, 47 Bytes
Probieren Sie es online! (Um in der Mathematik arbeiten zu können, müssen wir "Tr" durch "Total" ersetzen.)
quelle
Tr@*IntegerReverse@*Range
Kohle ,
1413 Bytes-1 Byte danke an Carlos Alejo
Probieren Sie es online! Link ist zur ausführlichen Version.
Erläuterung
quelle
»
. Übrigens, wo im Charcoal-Wiki ist derReduce
Operator dokumentiert?Modulo
Operator zum Formatieren von Zeichenfolgen in Charcoal verwendet werden?Magneson , 102 Bytes
Das ist nicht sehr sichtbar, daher hier eine vergrößerte Version (Hinweis: Läuft nicht wirklich und ist immer noch nicht sehr hübsch)
Magneson analysiert ein Bild und bewertet Befehle anhand der Farben der gelesenen Pixel. Wenn wir uns also für diese Herausforderung ins Bild setzen, haben wir:
R: 0, G: 1, B: 1
ist ein ganzzahliger Zuweisungsbefehl, der eine Zeichenfolge für den Variablennamen und den zuzuweisenden Wert enthält. Wir werden dies verwenden, um die Gesamtsumme zu speichern.R: 0, G: 1, B: 0
ist eine vorgefertigte Zeichenfolge mit dem WertVAR_1
(Hinweis: Dies ist nur möglich, wenn eine Zeichenfolge angefordert wird; der Farbcode hat eine separate Funktion, wenn er an anderer Stelle verwendet wird).R: 3, G: 0, B: 0
ist eine rohe Zahl. Magneson verarbeitet Standardzahlen, indem die Rot-Komponente genau 3 sein muss, und bildet dann eine Zahl, indem der Blau-Wert direkt plus der Grün-Wert multipliziert mit 256 verwendet wird. In diesem Fall erhalten wir nur die Zahl 0.R: 0, G: 1, B: 1
ist ein weiterer Befehl für die Zuweisung von Ganzzahlen. Dieses Mal speichern wir eine Iterationsvariable, um zu verfolgen, auf welcher Nummer wir gerade sindR: 0, G: 1, B: 1
ist eine vorgefertigte Zeichenkette mit dem WertVAR_2
(noch einmal, nur wenn wir eine Zeichenkette brauchen)R: 3, G: 0, B: 0
ist die Zahl 0 noch einmal. Auf die interessanten Teile jetzt.R: 1, G: 0, B: 0
zeigt den Beginn einer Schleife an. Dies nimmt eine Zahl und wiederholt den folgenden Codeausschnitt so oft.R: 2, G: 0, B: 0
ist die STDIN-Funktion, oder zumindest, wenn wir eine Nummer benötigen. Dadurch wird eine Eingabezeile von der Konsole gelesen und in eine Zahl umgewandelt, da wir nach einer Zahl gefragt haben.R: 0, G: 8, B: 0
startet unseren Schleifencode und es ist ein additiver Befehl. Dies fügt einer Ganzzahlvariablen eine Zahl hinzu und benötigt daher eine Zeichenfolge für den Variablennamen und die hinzuzufügende Zahl.R: 0, G: 1, B: 1
ist die vorgefertigte Zeichenfolge fürVAR_2
, die unsere Iterationsvariable ist.R: 3, G: 0, B: 1
ist eine rohe Zahl, aber diesmal ist es die Nummer 1.R: 0, G: 8, B: 0
ist ein weiterer Zusatzbefehl.R: 0, G: 1, B: 0
ist die Zeichenfolge fürVAR_1
, die unsere Gesamtsumme ist.R: 0, G: 3, B: 0
ist eine Funktion, die einen String umkehrt. Im Kontext der Abfrage einer Zahl wird die umgekehrte Zeichenfolge in eine Zahl konvertiert.R: 0, G: 2, B: 1
ist ein Integer-Abrufbefehl, der die in einer bereitgestellten Variablen gespeicherte Zahl abruft. Im Kontext der Abfrage einer Zeichenfolge (z. B. vom Befehl reverse) wird die Zahl in eine Zeichenfolge konvertiert.R: 0, G: 1, B: 1
ist der NameVAR_2
; unsere Iterationsvariable.R: 1, G: 0, B: 1
ist die Markierung zum Beenden der Schleife und zum Zurückkehren zum Anfang der Schleife, wenn die Kriterien nicht erfüllt sind (wenn wir also die Schleife fortsetzen müssen). Andernfalls fahren Sie fort.R: 0, G: 0, B: 1
ist ein sehr einfacher Befehl println, der eine Zeichenfolge enthält.R: 0, G: 2, B: 1
Ruft eine Ganzzahl aus einer Variablen abR: 0, G: 1, B: 0
ist der Name unserer Gesamtsummenvariable,VAR_1
Alles in allem ist das Programm:
VAR_1
undVAR_2
VAR_2
VAR_2
zu hinzuVAR_1
VAR_1
quelle
Python 2 ,
5047 Bytes-3 Bytes dank officialaimm!
Probieren Sie es online!
quelle
str
speichert `` statt 3 Bytes.CJam , 12 Bytes
Probieren Sie es online!
-1 Dank an Business Cat .
Erläuterung:
quelle
,
APL (Dyalog) ,
107 Bytes3 Bytes wurden dank @ Adám durch die Umwandlung in ein Tradfn aus einem Zug gespielt
Probieren Sie es online!
quelle
+/⍎⌽⍕⍳⎕
¨
war klug :)Java 8, 97 Bytes
BEARBEITEN
Gemäß dem Kommentar von
Kevin Cruijssen
möchte ich meine Antwort verbessern.Java 8, 103 Bytes
quelle
Integer.valueOf
kann golfennew Integer
werden und.reverse().toString()
kann golfen werden.reverse()+""
. Außerdem müssen Sie die erforderlichen Import- und Lambda-Parameter wiejava.util.stream.IntStream
undn->
davor einfügen. Und Sie können auch GolfIntStream
&Integer
toLongStream
undLong
. Die endgültige Antwort istn->java.util.stream.LongStream.range(1,n+1).map(i->new Long(new StringBuffer(""+i).reverse()+"")).sum()
( 103 Byte - Ihre aktuelle Antwort mit zusätzlichem Import und Lambda-Parameter wäre 117 Byte .) Immer noch +1, nette Antwort!Japt ,
75 Bytes-2 Bytes dank @Shaggy.
Probieren Sie es online!
Erläuterung
Alte Lösung, 7 Bytes
Halten Sie dies, da es eine wirklich coole Verwendung von ist
z2
.Probieren Sie es online!
Erläuterung
quelle
z2
auf einem Flat-Array ist das gleiche wiew
, richtig ...õ_swÃx
Dank der Neuaufnahme vonN.s(f)
.õs xw
für 5 Bytes.z2
Trick fallen zu lassen; das war ziemlich verdammt genial. Beachten Sie, dass das Nicht-Konkurrieren keine Sache mehr ist .C ++, 146 Bytes
quelle
auto
.auto
Stichwort wird benötigtusing namespace std;
Speichern von Bytes.Schale ,
7 63 BytesProbieren Sie es online!
Ungolfed / Erklärung
quelle
Perl 5 ,
29 2722 + 1 (-p
) = 23 BytesProbieren Sie es online!
quelle
map$r+=reverse,1..<>;say$r
.-p
RProgN 2 , 8 Bytes
Erklärt
Probieren Sie es online!
quelle
Pyth ,
86 Bytes-2 Bytes dank FryAmTheEggman!
Probieren Sie es online!
quelle
sms_`dS
dieU
am Ende nicht implizit missbraucht .Tcl , 66 Bytes
Probieren Sie es online!
quelle
Neim , 4 Bytes
Probieren Sie es online!
Erläuterung
quelle
𝐈Ψ𝐫𝐬
(Inklusivbereich erstellen, jedes Element umkehren, Summe)Ψ
Token existiert! hätte das definitiv im nachhinein genutzt. wirklich nettC (gcc) , 71 Bytes
Probieren Sie es online!
quelle
f()
das Ergebnis ohnereturn
Angabe von Gründen zurückgegeben? Verändert dere=a
Befehl die Register so, dass das Ergebnis in demselben Register gespeichert wird wie das, das von den zurückgegebenen Werten verwendet wird?