Definition
Wenn Sie die Folge positiver ganzzahliger Quadrate nehmen und zu einer Folge von Ziffern verketten (dh 149162536496481100...
), befindet sich ein "Early Bird" -Quadrat in dieser Folge vor seiner natürlichen Position.
Zum Beispiel kann 7 2 (die Zahl 49
) mit einem Versatz von 2 in der Zeichenfolge gefunden werden, obwohl die natürliche Position bei Versatz 10 liegt. Somit ist 7 das erste "Early Bird" -Quadrat.
Beachten Sie, dass, um als "Early Bird" -Quadrat zu gelten, alle Ziffern des Quadrats vor dem Start der natürlichen Position vorkommen müssen. Eine Übereinstimmung, die die natürliche Position teilweise überlappt, zählt nicht.
a(n)
ist die n-te positive ganze Zahl k, so dass k 2 ein "Early Bird" -Quadrat ist.
Aufgabe
Bei einer positiven Ganzzahl n
wird ausgegeben a(n)
.
Sie können eine 1-basierte oder eine 0-basierte Indizierung verwenden. Wenn Sie jedoch eine 0-basierte Indizierung verwenden, geben Sie dies bitte in Ihrer Antwort an.
Ihre Lösung sollte mindestens so hoch sein wie a(53)
(oder wenn Sie eine 0-basierte Indizierung verwenden a(52)
).
Testfälle
n a(n)
1 7
2 8
3 21
4 25
5 46
6 97
7 129
8 161
9 196
10 221
...
13 277
...
50 30015
51 35000
52 39250
53 46111
n
Elemente der Sequenz akzeptiert werden? Es liegt an OP, aber viele Menschen entscheiden sich dafür, dies zuzulassen.a(n)
.Antworten:
05AB1E ,
109 BytesDank Adnan 1 Byte gespeichert .
Probieren Sie es online!
Erläuterung
quelle
½
der Schleife automatisch hinzugefügt wird, wenn es fehlt.JavaScript (ES6),
514945 Byte1-indiziert.
Demo
Code-Snippet anzeigen
Formatiert und kommentiert
Nicht rekursive Version, 53 Bytes
Dieser hängt nicht von Ihrer Motorstapelgröße ab.
Probieren Sie es online!
quelle
Pyth , 12 Bytes
Probieren Sie es hier aus!
Wie es funktioniert
quelle
Perl 5 , 34 Bytes
33 Byte Code + 1 für
-p
.Probieren Sie es online!
quelle
APL (Dyalog) ,
5342 BytesProbieren Sie es online!
Wie?
⍷
- Vorkommen von finden⍕×⍨⍵+1
- verstrichenes Quadratx+1
in der⍕×⍨⍳⍵
- stringierter Bereich von Quadratenx
' '~⍨
- ohne Zwischenraum+/
- Summe0<
- Wenn die Summe positiv ist (Vorkommen sind vorhanden), wird sie zurückgegebenx+1
, andernfalls∇⍵+1
- Rekurs mitx+1
.⍣⍵
-n
mal anwenden .quelle
Haskell , 73 Bytes
Probieren Sie es online! Null indexiert.
Erläuterung
Hilfsmittel:
Hauptfunktion:
quelle
Jelly ,
1311 BytesProbieren Sie es online!
Alternativ ist dies eine 10-Byte-Lösung, die die
n
ersten Werte der Sequenz ausgibt : Probieren Sie es online aus!quelle
nfind
dingy: (((Python 2 ,
6261 BytesProbieren Sie es online!
quelle
Jelly , 11 Bytes
Probieren Sie es online!
Eine Alternative zur Lösung von user202729 .
Wie es funktioniert
quelle
ẇ
hat automatische Stringifizierung.Alice , 32 Bytes
Probieren Sie es online!
Das verschwenderische Layout dieses Abschnitts des Ordinal-Modus nervt mich wirklich, aber alles, was ich versuche, um ein paar Bytes zu sparen, kommt länger raus ...
Erläuterung
Nur das übliche dezimale E / A-Framework mit den
o
und@
in leicht ungewöhnlichen Positionen. Das Fleisch des Programms ist folgendes:quelle
F
anstelle vonz
), aber die Stapelbearbeitung wird nicht einfacher sein, möglicherweise sind sogar ein oder zwei Befehle schlechter.Schale , 13 Bytes
Probieren Sie es online!
Erläuterung
Die zweite Zeile ist eine Hilfsfunktion, die die Dezimalstellen des Quadrats einer Zahl angibt:
Wir können diese Funktion im Hauptprogramm mit aufrufen
₁
.quelle
Kotlin , 79 Bytes
Probieren Sie es online!
quelle
Wolfram Language (Mathematica) , 75 Byte
Probieren Sie es online!
Wie es funktioniert
n
behält die Anzahl der gefundenen Frühaufsteher bei,k
die zuletzt überprüfte Anzahls
die Zeichenfolge"1491625..."
. Währendn
es zu klein ist, wenn ess
das nächste Quadrat enthält, wurde ein weiterer Frühaufsteher gefunden, sodass wir inkrementierenn
. In jedem Fall verlängern wirs
.Sobald
n
die Eingabe erreicht ist#
, kehren wir zurückk
, die letzte Nummer überprüft und damit der letzte frühe Vogel gefunden.Auf meinem Laptop dauert es ungefähr 53 Sekunden, um den 53. Term der Sequenz zu berechnen.
quelle
REXX , 66 Bytes
Probieren Sie es online!
quelle
Schlag,
7669 BytesAngenommen,
n
wird in Variable (dhn=10 foo.sh
) gegeben. Verwendet Paketgrep
. Es wird ein beliebiger mittlerer Wert ausgegeben (falls zulässig, -3 Byte).Wie funktioniert es?
quelle