Terminologie
Eine aufsteigende Zahl ist eine Zahl, bei der jede Ziffer größer oder gleich allen Ziffern links davon ist (z. B. 12239).
Eine absteigende Zahl ist eine Zahl, bei der jede Ziffer kleiner oder gleich allen Ziffern links davon ist (z. B. 95531).
Eine Sprungzahl ist eine Zahl, die nicht zunimmt oder abnimmt. Da dies mindestens 3 Stellen erfordert, ist die erste Hüpfnummer 101
Die Aufgabe
Wenn eine ganze Zahl n größer oder gleich 1 ist, ermitteln Sie die Summe der ersten n Sprungzahlen
Regeln
- Dies ist Codegolf, daher gewinnt die Antwort mit der kürzesten Anzahl von Bytes
- Wenn in Ihrer Sprache die Ganzzahlgröße begrenzt ist (z. B. 2 ^ 32-1), 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, das die Nummer anzeigt usw.).
Testfälle
1 > 101
10 > 1065
44701 > 1096472981
sort
die Nummern überprüfen und überprüfen, ob sie mit der ursprünglichen Nummer übereinstimmen? Dies verwendet ein eingebautes (sort
), aber es ist nicht ausschließlich ein eingebautes, um zu überprüfen, ob es zunimmt. Schauen Sie sich die nicht beobachtbaren Programmanforderungen an und machen Sie X ohne Y in unserem Metapost "Zu vermeidende Dinge".Antworten:
Jelly ,
108 BytesProbieren Sie es online!
Wie es funktioniert
quelle
ṚƬ
ist sehr ordentlich ...Pyth , 10 Bytes
Probieren Sie es hier aus!
Wie es funktioniert?
quelle
K (ngn / k) , 37 Bytes
Probieren Sie es online!
{
}
ist eine Funktion mit Argumentx
x{
}\0
gilt das{}
für0
x
Zeiten, die Zwischenergebnisse zu bewahren(1+)
ist die Nachfolgerfunktion{
}(1+)/x+1
Wendet die Nachfolgerfunktion ab an,x+1
bis die{}
Rückgabe wahr ist10\x
sind die Dezimalstellen vonx
a:
zuweisena
|\
ist der Max-Scan (Teilmaxima) vona
&\
analog ist der min-scana~|\a
passta
zu seinem Max-Scan?|
odera~&\a
sein min-scan?+/
Summequelle
JavaScript (ES6), 77 Byte
Probieren Sie es online!
Kommentiert
quelle
Python 2,
1109289 BytesProbieren Sie es online aus
Diese Funktion bestimmt, ob eine Zahl federnd ist:
quelle
set(map(cmp,`x`[:-1],`x`[1:]))
.map
.x=s=0\nwhile n:b={-1,1}<=set(map(cmp,`x`[:-1],`x`[1:]));s+=x*b;n-=b;x+=1
Python 2 , 84 Bytes
Probieren Sie es online! Oder sehen Sie sich eine Testsuite an .
quelle
Netzhaut , 93 Bytes
Probieren Sie es online! Erläuterung:
Initialisieren
s=i=0
. (s
Ist die Anzahl der#
Sekunden vor:
,i
die Anzahl der#
Sekunden nach.)Wiederhole das
n
mal.Wiederholen, während
i
nicht federnd ist.Zuwachs
i
und kopieren Sie dezimal.Konvertieren Sie die Ziffern der Kopie in Unary. Der Bounciness-Test verwendet die unäre Kopie, daher funktioniert er nur einmal
i
sie mindestens einmal inkrementiert wurde.In
i
zus
und löschen Sie die Kopie der einstelligen Ziffern, so dass für den nächsten Durchlauf der inneren Schleife des bounciness Test nicht bestanden undi
wird mindestens einmal erhöht.In
s
Dezimalzahl konvertieren .Die 121-Byte-Version wird in Dezimalzahlen berechnet und kann daher für folgende Werte verwendet werden
n
:Probieren Sie es online! Erläuterung:
Initialisieren
s=i=0
.Wiederhole das
n
mal.Wiederholen, während
i
nicht federnd ist.Inkrementieren
i
und kopieren.Konvertieren Sie die Ziffern der Kopie in Unary. Der Bounciness-Test verwendet die unäre Kopie, funktioniert also nur, wenn
i
sie mindestens einmal inkrementiert wurde.In
i
ans
und die Kopie der einstelligen Ziffern löschen, so dass für den nächsten Durchlauf der inneren Schleife des bounciness Test nicht bestanden undi
wird mindestens einmal erhöht.Löschen
i
.quelle
05AB1E , 12 Bytes
Probieren Sie es online!
Erläuterung
quelle
Java 8,
114112 BytesVerwendet einen regulären Ausdruck, um zu überprüfen, ob die Anzahl zunimmt oder abnimmt. Probieren Sie es online aus hier aus .
Ungolfed:
quelle
Python 2, 250 Bytes
quelle
;
vor, so viele Anweisungen wie möglich in eine einzelne Zeile zu setzen, Leerzeichen zu entfernen und eine Funktion für die beiden sehr ähnlichen langen Zeilen zu definieren, damit Sie einen Teil des Codes wiederverwenden können. Auch können Siea=b=s=0
und tunlen(g)!=h-1!=len(d)
.Stax , 14 Bytes
Führen Sie es aus und debuggen Sie es
quelle
Rot , 108 Bytes
Probieren Sie es online!
Besser lesbar:
Eine gute Gelegenheit zu nutzen
form
-form i
ist 5 Bytes kürzer alsto-string i
quelle
MATL ,
3130 BytesProbieren Sie es online!
quelle
R , 96 Bytes
Probieren Sie es online!
Erklärung:
quelle
Ruby (123 Bytes)
Sieht für mich ziemlich hässlich aus. In diesem Block wird die Bounciness definiert
x.sort!=x&&x.sort!=x.reverse
quelle
Ruby , 76 Bytes
Probieren Sie es online!
quelle
C (gcc), 104 Bytes
Probieren Sie es hier online aus .
Ungolfed:
quelle
u+=!y?--b,o:0,++o
stattdessen voru+=y?0:o+0*--b,++o
,;y&=(c-=n%10)<0?:c?2:y)c=n%10,n/=10;
stattdessen;)c=n%10,n/=10,y&=(c-=n%10)<0?:c?2:y;