AUFGABE
Geben Sie die Ganzzahlen n, wobei 12 <= n <= 123456789
und alle Paare aufeinanderfolgender Ziffern in n die gleiche positive Differenz aufweisen (z. B. 2468, aber nicht 2469).
KEINE EINGABE.
Ausgabe:
12
13
14
15
16
17
18
19
23
24
25
26
27
28
29
34
35
36
37
38
39
45
46
47
48
49
56
57
58
59
67
68
69
78
79
89
123
135
147
159
234
246
258
345
357
369
456
468
567
579
678
789
1234
1357
2345
2468
3456
3579
4567
5678
6789
12345
13579
23456
34567
45678
56789
123456
234567
345678
456789
1234567
2345678
3456789
12345678
23456789
123456789
Regeln
- Es gelten Standardlücken.
- keine Eingabe
kürzester Code gewinnt.
Credits Anarchie Golf
Antworten:
Jelly ,
1211 BytesProbieren Sie es online!
Wie es funktioniert
quelle
ìà Find fastest route between two points using Dykstra's Algorithm
Python 2 , 81 Bytes
Probieren Sie es online!
Meine Lösung aus Anarchie Golf. Die Idee besteht darin, alle möglichen Dreifache von Länge, Startwert und Schritt zu durchlaufen, was sortierte Ausgaben ergibt. Die dreifache wird als ein Wert codiert
r
von72
zu647
, und die Komponenten werden extrahiert , wiek/72
,k/8%9
, undk%8
. Wenn Siek
hoch genug starten, werden keine einstelligen Zahlen ausgegeben.xsot sparte zwei Bytes ein , indem es die
range
Zeichenfolge durch eine fest codierte Ziffernfolge ersetzte'123456789'
.Dies wurde unter der Bedingung einer Laufzeitbegrenzung von zwei Sekunden geschrieben. Eine langsamere Strategie, bei der Zahlen gefiltert und nicht generiert werden, ist möglicherweise kürzer.
quelle
1
zu123456789
, sondern zwingt Antworten mit einigen cleveren Weg zu kommen , um die richtigen Zahlen in der rechten zu erzeugen (sortiert) bestellen.C
166152 Bytes6 Bytes gespart dank @KevinCruijssen!
8 Bytes gespart dank @JonathanFrech!
Probieren Sie es online aus
Die vollständig formatierte Version des obigen Codes ist unten zu sehen.
quelle
while(i<123456789)
sein ,while(i<=123456789)
anstatt nach der Herausforderung Bereich? Sie können auch 6 Bytes Golf spielen:p,l,d,i=11;main(){for(char s[10];i<=123456789;){sprintf(s,"%d",++i);p=0;for(l=strlen(s);--l>0;){d=s[l]-s[l-1];if(p<1)p=d;if(p^d|d<1)break;p=d;}if(l<1)puts(s);}}
i<1e9
.l<1
kann man Golfen!l
, dal
nie ein negativer Wert erreicht wird.i<1e9
. Und!l
wann das für Cl
immer>=0
vernünftig klingt, vermute ich (ich habe noch nie C programmiert).Jelly ,
14, 13 BytesProbieren Sie es online!
Ein Byte gespart dank @MrXcoder!
Dies ist äußerst ineffizient, daher tritt bei TIO eine Zeitüberschreitung auf. Sollte dies jedoch jemals zu Ende gehen, wird die korrekte Ausgabe erzeugt. Sie können es hier mit kleineren Zahlen versuchen: Probieren Sie es online!
Erläuterung:
quelle
$
am Ende Ihres Hilfsprogramms stehenden Link nicht.DIµ>0ȦȧE¶Ç77#
05AB1E , 23 Bytes
Probieren Sie es online!
Ersetzen Sie es
•7=›ζ•
durch 7000, um es auf TIO zu beenden, oder klicken Sie einfach auf die Schaltfläche "Beenden", bevor das Zeitlimit überschritten wird, was dazu führt, dass die Zahlen bis zu diesem Punkt gedruckt werden.quelle
žh
'0123456789'
,1357
zum Beispiel ist es auch eine gültige Zahl, die Sie ausgeben müssen.•7=›ζ•
Mathematica, 79 Bytes
Probieren Sie es online! mit einer niedrigeren Zahl, weil es sehr langsam ist
Hier ist ein weiterer Ansatz, der alle Zahlen in 1 Sekunde aufbaut
Mathematica, 123 Bytes
Probieren Sie es online! alle zahlen in einer sek
quelle
Schale ,
1413 BytesGibt durch Zeilenumbrüche getrennte Zahlen in STDOUT aus. Probieren Sie es online!
-1 Byte aufgrund der Inspiration von H.PWiz.
Erläuterung
quelle
Wolfram Language (Mathematica) , 76 Byte
Probieren Sie es online!
quelle
APL (Dyalog) ,
3728 BytesProbieren Sie es online! (mit kürzerer Reichweite, wegen Zeitüberschreitung)
Wie?
x←11+⍳123456789
-11, 12... 1e9
inx
¨
- für jedes⍎¨⍕⍵
- in Ziffern aufbrechen2-/
- Unterschiedsliste abrufen∪
- Holen Sie sich einzigartige Elemente1=≢
- Länge == 1?x/⍨
- Verwenden Sie dies als Maske für den erstellten Bereich⍪
- und kolumnifizierenquelle
Schale , 14 Bytes
Probieren Sie es online!
quelle
≠
. : PI hatte vergessen, dass es auch für Charaktere funktioniertBatch,
210200 BytesKeine Optimierungen, also sehr langsam - dauert ca. 25 Sekunden bis 12345, sodass Sie für die vollständige Ausgabe ca. 3 Tage warten müssen.
quelle
Java 8,
169168145 BytesPort von @Jacobinski C antworten (nachdem ich ein bisschen Golf gespielt habe).
-23 Bytes dank @Nevay .
Erläuterung:
Probieren Sie es hier aus. (Gegen Ende ist es etwas zu langsam, sodass die endgültige Nummer nicht auf TIO gedruckt wird. Die endgültige Nummer wird jedoch lokal in etwa 20 Sekunden gedruckt.)
quelle
v->{byte[]a;for(int i=9,p,l;++i<1e9;System.out.print(l<1?i+"\n":""))for(a=(i+"").getBytes(),p=0,l=a.length;--l>0&&p*(p^(p=a[l]-a[l-1]))<1&p>0;);}
break
irgendwie fallen zu lassen und es dem for-loop-Check hinzuzufügen, aber das hätte ich mir nicht ausgedacht. ;) Vielen Dank!05AB1E , 14 Bytes
Probieren Sie es online!
quelle
12žhŸʒS¥D0›PsË&
, ich kann es nicht dazu bringen, lokal zu laufen. Können Sie dies tatsächlich ausführen lassen?Ÿ
, funktioniert esPython 2 ,
1039795 Bytes-2 Bytes dank @JonathanFrech
Probieren Sie es online!
quelle
`n`[1:]
.Python 2 ,
7675 BytesDauert ca. 3 Minuten vor Ort.
Probieren Sie es online! (geändert, um alle Zahlen außer der letzten zu drucken)
quelle
JavaScript (Firefox 30-57), 105 Byte
Schleifen über Längen von 2 bis 10 (x ist der Index des letzten Zeichens und daher 1 kleiner als die Länge), Startziffern von 1 bis 9 und Schritt von 1 bis 9, dann Filtern nach der Endziffer kleiner als 10 und wenn So wird das Ergebnis durch Herausfiltern von Ziffern aus der Ziffernfolge generiert.
quelle
Uncaught SyntaxError: Unexpected token for
Pyth , 21 Bytes
Port of Dennis 'kluger Ansatz .
Probieren Sie es hier aus!
Pyth , 23 Bytes
Beim Online-Interpreter tritt eine Zeitüberschreitung auf, dies funktioniert jedoch, wenn genügend Zeit und Speicherplatz zur Verfügung stehen.
Versuchen Sie es online mit einer niedrigeren Nummer .
quelle
MATL ,
1716 BytesProbieren Sie es online! wird durch
1e9
ersetzt1e3
, damit im Online-Compiler keine Zeitüberschreitung auftritt.quelle
JavaScript (ES6), 121 Byte
Nicht annähernd so kurz wie Neils Antwort , aber ich dachte, es lohnt sich immer noch, etwas zu posten.
Erstellen Sie ein Powerset, bei
'123456789'
dem alle nicht übereinstimmenden Einträge abgeschnitten und mit einem Präfix versehen werden0
. Sortieren Sie die Ergebnisse in numerischer Reihenfolge, und behalten Sie nur die 77 relevanten Einträge bei .Demo
Code-Snippet anzeigen
quelle
C (gcc) , 106 Bytes
Probieren Sie es online!
Die ungolfed (prettified) Version:
quelle
JavaScript (ES6),
109104 ByteGeneriert alle möglichen Zahlen: Durchläuft jedes Inkrement von 8 bis 1 (variabel
i
), durchläuft jede Startziffer von 8 bis 1 (variabelj
), durchläuft jede Ziffer zwischenj
und10-i
(variabelk
) und generiert eine Zeichenfolget
durch Anhängenk
an die aktuellet
. Bei jedem Schrittt
wird das Ausgabearray hinzugefügt.Probieren Sie es online!
quelle
Wolfram Language (Mathematica) , 71 Byte
Probieren Sie es online!
Blitzschnell durch Konstruieren statt Auswählen des Ausgangs.
quelle
Java (OpenJDK 8) ,
228174170163 BytesProbieren Sie es online!
quelle
JavaScript (ES6), 145 Byte
Ein direkter Ansatz mit wenig Magie.
Das Ausführen des Snippets verbraucht viel Speicherplatz ...
quelle
PHP,
8584 Bytesversuche es online .
Das Sortieren kostet 17 Bytes. Diese Version druckt die Ergebnisse anders sortiert aus:
quelle