Definicja
Jeśli weźmiesz ciąg dodatnich kwadratów całkowitych i połączysz je w ciąg cyfr (tj. 149162536496481100...
), Kwadrat „wczesnego ptaka” to taki, który można znaleźć w tym ciągu przed jego naturalną pozycją.
Na przykład 7 2 (liczba 49
) można znaleźć z przesunięciem 2 w łańcuchu, chociaż naturalna pozycja to przesunięcie 10. Zatem 7 jest pierwszym kwadratem „wczesnego ptaka”.
Należy pamiętać, że aby uznać go za kwadrat „wczesnego ptaka”, wszystkie cyfry na kwadracie muszą wystąpić przed początkiem naturalnej pozycji. Mecz, który częściowo pokrywa się z naturalną pozycją, nie jest brany pod uwagę.
a(n)
jest n-tą dodatnią liczbą całkowitą k, tak że k 2 jest kwadratem „wczesnego ptaka”.
Zadanie
Biorąc pod uwagę dodatnią liczbę całkowitą n
, wyjście a(n)
.
Możesz użyć indeksowania 1 lub 0, ale jeśli używasz indeksowania 0, powiedz to w swojej odpowiedzi.
Twoje rozwiązanie powinno być w stanie obsłużyć co najmniej tak wysokie jak a(53)
(lub jeśli korzystasz z indeksowania 0 a(52)
).
Przypadki testowe
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
elementów sekwencji może zostać zaakceptowane? To zależy od OP, ale wiele osób decyduje się na to.a(n)
.Odpowiedzi:
05AB1E ,
109 bajtówZaoszczędzono 1 bajt dzięki Adnan .
Wypróbuj online!
Wyjaśnienie
źródło
½
ponieważ zostanie automatycznie dodany do pętli, gdy go nie będzie.JavaScript (ES6),
514945 bajtów1-indeksowany.
Próbny
Pokaż fragment kodu
Sformatowane i skomentowane
Wersja nierekurencyjna, 53 bajty
Ten nie zależy od wielkości stosu silnika.
Wypróbuj online!
źródło
Pyth , 12 bajtów
Wypróbuj tutaj!
Jak to działa
źródło
Perl 5 , 34 bajtów
33 bajtowy kod + 1 dla
-p
.Wypróbuj online!
źródło
APL (Dyalog) ,
5342 bajtyWypróbuj online!
W jaki sposób?
⍷
- znajdź wystąpienia⍕×⍨⍵+1
- skośny kwadratx+1
w⍕×⍨⍳⍵
- zawężony zakres kwadratówx
' '~⍨
- bez przestrzeni+/
- suma0<
- jeśli suma jest dodatnia (wystąpienia), to zwracax+1
, w przeciwnym razie,∇⍵+1
- powtórzyć zx+1
.⍣⍵
- zastosowaćn
czasy.źródło
Haskell , 73 bajty
Wypróbuj online! Zero indeksowane.
Wyjaśnienie
Pomocnicze:
Główna funkcja:
źródło
Galaretka ,
1311 bajtówWypróbuj online!
Alternatywnie jest to 10-bajtowe rozwiązanie, które drukuje
n
pierwsze wartości sekwencji: Wypróbuj online!źródło
nfind
thingy: (((Python 2 ,
6261 bajtówWypróbuj online!
źródło
Galaretka , 11 bajtów
Wypróbuj online!
Alternatywa dla rozwiązania user202729 .
Jak to działa
źródło
ẇ
ma automatyczną strunizację.Alice , 32 bajty
Wypróbuj online!
Marnotrawstwo układu tego odcinka trybu porządkowego naprawdę mnie wkurza, ale wszystko, co próbuję zapisać tam kilka bajtów, pojawia się dłużej ...
Wyjaśnienie
Po prostu zwykła platforma dziesiętna we / wy, z pozycjami
o
i@
nieco nietypowymi. Mięsem programu jest to:źródło
F
zamiastz
), ale manipulacja stosem nie będzie prostsza, być może nawet jedno lub dwa polecenia gorsze.Łuska , 13 bajtów
Wypróbuj online!
Wyjaśnienie
Druga linia to funkcja pomocnicza, która podaje nam cyfry dziesiętne kwadratu liczbowego:
Możemy wywołać tę funkcję w głównym programie za pomocą
₁
.źródło
Kotlin , 79 bajtów
Wypróbuj online!
źródło
Wolfram Language (Mathematica) , 75 bajtów
Wypróbuj online!
Jak to działa
n
utrzymuje liczbę znalezionych wczesnych ptaków,k
ostatnią sprawdzoną liczbę,s
ciąg"1491625..."
. Chociażn
jest zbyt mały, jeślis
zawiera następny kwadrat, znaleziono innego wczesnego ptaka, więc zwiększamyn
. W każdym razie przedłużamys
.Gdy
n
dotrze do wejścia#
, wracamyk
, ostatni sprawdzany numer, a zatem ostatni znaleziony wczesny ptak.Na moim laptopie obliczenie 53. kadencji sekwencji zajmuje około 53 sekund.
źródło
REXX , 66 bajtów
Wypróbuj online!
źródło
Bash,
7669 bajtówZałóżmy, że
n
podano w zmiennej (tjn=10 foo.sh
.). Wykorzystuje pakietgrep
. Każda wartość środkowa jest wyprowadzana (jeśli dozwolone, -3 bajty).Jak to działa?
źródło